乒乓球


1 //区间DP
2 #include<bits/stdc++.h>
3 using namespace std;
4 int num[101] , maxN[101][101][10] , minN[101][101][10];
5 inline int max(int a , int b){
6 return a > b ? a : b;
7 }
8 inline int min(int a , int b){
9 return a < b ? a : b;
10 }
11 int main(){
12 memset(minN , 0x3f , sizeof(minN));
13 int N , M;
14 cin >> N >> M;
15 for(int i = 1 ; i <= N ; i++)
16 {
17 cin >> num[i];
18 num[i + N] = num[i];
19 }
20 for(int i = 1 ; i <= N << 1 ; i++)
21 for(int j = i ; j <= N << 1 ; j++)
22 minN[i][j][1] = maxN[i][j][1]
23 = ((maxN[i][j - 1][1] + num[j]) % 10 + 10) % 10;
24 for(int k = 2 ; k <= M ; k++)
25 for(int i = 1 ; i <= (N << 1) - k + 1 ; i++)
26 for(int j = i + k - 1 ; j <= N << 1 && j - i + 1 <= N ; j++)
27 for(int m = i ; m < j ; m++)
28 for(int n = max(1 , k - j + m) ; n < k && n <= m - i + 1 ; n++)
29 {
30 maxN[i][j][k] = max(maxN[i][j][k] , maxN[i][m][n] * maxN[m + 1][j][k - n]);
31 minN[i][j][k] = min(minN[i][j][k] , minN[i][m][n] * minN[m + 1][j][k - n]);
32 }
33 int maxM = 0 , minM = 0x3f3f3f3f;
34 for(int i = 1 ; i <= N ; i++)
35 {
36 maxM = max(maxM , maxN[i][i + N - 1][M]);
37 minM = min(minM , minN[i][i + N - 1][M]);
38 }
39 cout << minM << endl << maxM;
40 return 0;
41 }
数字游戏


1 //第一问用对数函数得答案,第二问高精快速幂
2 #include<bits/stdc++.h>
3 using namespace std;
4 int num1[502] = {0 , 2} , num2[502] , num3[502] = {0 , 1};
5 int main()
6 {
7 std::ios::sync_with_stdio(false);
8 int p;
9 cin >> p;
10 cout << floor(log10(2) * p + 1) << endl;
11 while(p)
12 {
13 if(p & 1)
14 {
15 for(int i = 1 ; i <= 500 ; i++)
16 for(int j = 1 ; j <= 501 - i ; j++)
17 {
18 num2[i + j - 1] += num1[i] * num3[j];
19 if(num2[i + j - 1] >= 10)
20 {
21 if(i + j - 1 < 500) num2[i + j] += num2[i + j - 1] / 10;
22 num2[i + j - 1] %= 10;
23 }
24 }
25 for(int i = 500 ; i ; i--)
26 {
27 num3[i] = num2[i];
28 num2[i] = 0;
29 }
30 }
31 for(int i = 1 ; i <= 500 ; i++)
32 for(int j = 1 ; j <= 501 - i ; j++)
33 {
34 num2[i + j - 1] += num1[i] * num1[j];
35 if(num2[i + j - 1] >= 10)
36 {
37 if(i + j - 1 < 500) num2[i + j] += num2[i + j - 1] / 10;
38 num2[i + j - 1] %= 10;
39 }
40 }
41 for(int i = 500 ; i ; i--)
42 {
43 num1[i] = num2[i];
44 num2[i] = 0;
45 }
46 p >>= 1;
47 }
48 num3[1]--;
49 for(int i = 500 ; i ; i--)
50 {
51 cout << num3[i];
52 if((i - 1) % 50 == 0) cout << endl;
53 }
54 return 0;
55 }
麦森数


1 #include<bits/stdc++.h>
2 using namespace std;
3 int main()
4 {
5 int maxN = 7 , maxD = 0;
6 for(int i = 1 ; i <= 7 ; i++)
7 {
8 int a , b;
9 cin >> a >> b;
10 if(a + b > maxN)
11 {
12 maxN = a + b;
13 maxD = i;
14 }
15 }
16 cout << maxD;
17 return 0;
18 }
不高兴的津津


1 //模拟
2 #include<bits/stdc++.h>
3 using namespace std;
4 struct hs{
5 int num , x , y;
6 }ans[401];
7 bool cmp(hs a , hs b)
8 {
9 return a.num > b.num;
10 }
11 int main()
12 {
13 int n , m , p , dirH = 0 , i = 1 , pri , nowX , nowY;
14 cin >> n >> m >> p;
15 for(int i = 1 ; i <= n ; i++)
16 for(int j = 1 ; j <= m ; j++)
17 {
18 int a;
19 cin >> a;
20 if(a)
21 {
22 ans[dirH].num = a;
23 ans[dirH].x = i;
24 ans[dirH++].y = j;
25 }
26 }
27 sort(ans , ans + dirH , cmp);
28 if(ans[0].x * 2 + 1> p)
29 {
30 cout << 0;
31 return 0;
32 }
33 p -= ans[0].x + 1;
34 pri = ans[0].num;
35 nowX = ans[0].x;
36 nowY = ans[0].y;
37 while(i < dirH && p - abs(nowX - ans[i].x) - abs(nowY - ans[i].y) - ans[i].x - 1 >= 0)
38 {
39 p -= abs(nowX - ans[i].x) + abs(nowY - ans[i].y) + 1;
40 nowX = ans[i].x;
41 nowY = ans[i].y;
42 pri += ans[i++].num;
43 }
44 cout << pri;
45 return 0;
46 }
花生采摘


1 //乱搞
2 #include<bits/stdc++.h>
3 using namespace std;
4 int n;
5 char m[11][1024];
6 void hx(int a , int b)
7 {
8 if(a == n) cout << m[a][b];
9 else{
10 hx(a + 1 , 2 * b);
11 hx(a + 1 , 2 * b + 1);
12 if(m[a + 1][2 * b] == 'B' && m[a + 1][2 * b + 1] == 'B')
13 m[a][b] = 'B';
14 else if(m[a + 1][2 * b] == 'I' && m[a + 1][2 * b + 1] == 'I')
15 m[a][b] = 'I';
16 else m[a][b] = 'F';
17 cout << m[a][b];
18 }
19 }
20 int main()
21 {
22 string s;
23 cin >> n >> s;
24 for(int i = 0 ; i < s.size() ; i++)
25 if(s[i] == '1') m[n][i] = 'I';
26 else m[n][i] = 'B';
27 hx(0 , 0);
28 return 0;
29 }
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-124192-2.html
以前中国还考虑给别人面子
下次美军舰如果再来我想中国军舰肯定会用登陆舰撞击