給你n,要求你在[4,n]範圍內找到乙個最大的質數x,使得x-4和x+4也是質數
數學
只有7是滿足的
為什麼?
1、若 n = 3x,因為n>4,所以n必為合數,不符。
2、若 n = 3x + 1,
則 n - 4 = 3x - 3 = 3(x-1) ,即(n -4 ) % 3 == 0,有且只有n=7時滿足
3、若 m = 3x + 2,
則 n + 4 = 3x + 6 = 3 * (x+2),顯然n+4為合數,不符
所以n<7時輸出-1,n>=7時輸出7即可
**如下:
#includeusing namespace std;
int main()
給你n個數,m次詢問
每次詢問是這樣的:
輸入x將會構造出乙個新的序列,這個新的序列b[i] = a[x] - a[i] (i然後要求你計算出這個b序列中小於0的數的和sum1,大於0的數的和的絕對值sum2
如果sum1>sum2 輸出keep dis
如果sum1=sum2 輸出next time
如果sum1字首和
維護字首和,a[i][j]表示前i個數中,大小為j的數一共有多少個
然後我們就可以處理詢問了~
每次處理詢問的時候:
sum1+=a[x][j]*(s[x]-j) (s[x]>j的時候)
sum2+=a[x][j]*(j-s[x]) (s[x]然後掃一遍10個數就好了~
#includeusing namespace std;
int a[100001][11];
int n,m;
string s;
int main()
}
首先給你乙個密碼串,你需要通過這個密碼串生成5*5的密碼矩陣
這個密碼矩陣的構造方式如下:
這個矩陣依次填入密碼串的字元,如果密碼串中的字元出現了多次,只算第一次出現的那次。
密碼串中的j視作i,大寫視作小寫。
剩下沒有填滿的格仔,就按照字典序去填。
然後給你乙個串,你需要輸出加密後的串。
需要忽略除了字母的任何字元,空格。
加密方式如下:
我們首先把串分組,相鄰的兩個為一組,如果相鄰的兩個相同的話,就在這兩個之間插入乙個x。
分組之後,如果同組的元素都在同一行,就輸出右邊的,如果都在同一列,就輸出下面的,如果都不是,就輸出mp[l1][r2],mp[l2][r1]
模擬題
認真讀題之後,就沒什麼坑了。。。
模擬題多讀幾遍 t t(別問我為什麼
#includeusing namespace std;
int mp[10][10];
int vis[30];
int l[30];
int r[30];
string s,txt,temp,txt1;
int main()
for(int i=0;i
給你n行m列的矩陣,你一開始在(1,1)這個位置,如果你到某個格仔,你身上的權值就會加上a[i][j],如果你權值為負數,就會死掉
問你在保證不走出去,以及不死掉的情況下,權值最多為多少
一開始在(x,y),下一步可以走到(x+1,y)(x,y+1)(x+2,y+1)(x+1,y+2)
動態規劃
dp[i][j]表示走到當前格仔所能獲得的最大權值,很顯然dp[i][j]=max(dp[i-1][j],dp[i][j-1],dp[i-2][j-1],dp[i-1][j-2])+a[i][j]轉移過來的
稍微注意下,如果dp[x][y]為負數的話,就不要從這兒轉移過來就好了
#includeusing namespace std;
const long long inf = 9999999999999ll;
long long dp[1002][1002];
long long a[1002][1002];
int dx[5]=;
int dy[5]=;
int n,m;
int check(int x,int y)
int main()
dp[1][1]=a[1][1];long long ans = -1;
for(int i=1;i<=n;i++)}}
cout<
有n個男孩子,n個女孩子,男孩子和女孩子可以組合在一起,組合一起的value = p[i] * v[i]
然後問你,一共有多少種組合,第乙個人的組合,能力值最高
暴力容斥
首先我們列舉每乙個女孩子和第乙個人組合的情況
然後列舉後面的熊孩子,對於每個熊孩子再數出一共有多少種組合比他厲害,就可以暴力容斥了~
#includeusing namespace std;
#define maxn 120
const int mod = 1e9 + 7;
long long a[maxn];
long long b[maxn];
long long c[maxn];
bool cmp(int a,int b)
int main()
tmp = tmp + 2 - j;
if(tmp<=0)
ans2 = (ans2 * tmp)%mod;
}if(flag==0)
ans = (ans + ans2)%mod;
}printf("%d\n",ans);
}
給你n棧燈,一開始只有第m盞燈是亮著的。
然後你可以開啟第i盞燈,如果第j盞燈是亮著的,而且abs|j-i|<=2
然後問你一共有多少種方式能夠開啟所有燈
動態規劃
f[n]表示開了n盞燈的方案數,則f[n]=(f[n-2])*(n-1)+f[n-1]。
由於第一盞燈的兩方相互不影響,設i為最初的燈 則答案為f[i-1]f[n-i]c(n-1,i-1)
#include#include#include#include#define ll long long
using namespace std;
const ll oo=1000000007;
ll n,m,i,j,c[1111][1111],b[1111],ans;
int main()
b[1]=1;b[2]=2;
for(i=3;i<=n;++i)
if(m==n||m==1)
c[0][0]=1;
for(i=1;i<=n;++i)
ans=((b[m-1]*b[n-m])%oo*c[n-1][m-1])%oo;
printf("%i64d\n",ans);
return 0;
}
第七屆ACM趣味程式設計競賽第四場(正式賽) 題解
final pan s prime numbers 給你n,要求你在 4,n 範圍內找到乙個最大的質數x,使得x 4和x 4也是質數 數學 只有7是滿足的 為什麼?1 若 n 3x,因為n 4,所以n必為合數,不符。2 若 n 3x 1,則 n 4 3x 3 3 x 1 即 n 4 3 0,有且只有...
山東省第七屆ACM程式設計競賽
sdutoj 3560 3570 水題 include include define mem a,x memset a,x,sizeof a using namespace std typedef long long ll const int n 100010 int a 5 int main re...
第七屆福建省程式設計競賽題解
a.best friend forever b.card game second edition include include include include include using namespace std int a 11111 int b 11111 int main for int ...