c multimap_emacs python c-c c-c i 不好使_a=b=c,a=b==c c语言(2)

电脑杂谈  发布时间:2019-09-26 07:03:00  来源:网络整理

乒乓球

 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

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 刘政航
      刘政航

      下次美军舰如果再来我想中国军舰肯定会用登陆舰撞击

    • 郭居安
      郭居安

      以前中国还考虑给别人面子

    热点图片
    拼命载入中...