Codeforces Global Round 6[A,B,C]

题意:给一个字符串,对它重新排列使得它是60的倍数。

模拟一下,需要能整除60  字符串中需要 能整除2 3 10,所以需要字符串各位数之和能整除3 并且有 一个偶数和一个0  或者两个0也行【没考虑到,WA到自闭QAQ】, 特殊情况 全为0 也行,

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define int long long
 4 signed main(){
 5     int _;cin>>_;
 6     while(_--){
 7         string str;
 8         cin>>str;
 9         int flag=0;int s=0;
10         int flag1=0;
11         for(int i=0;i<str.size();i++){
12             if(str[i]=='0'){
13                 flag++;
14             }
15             if((str[i]-'0')%2==0&&(str[i]!='0')){
16                 flag1=1;
17             }
18             s+=str[i]-'0';
19         }
20         if((flag1&&s%3==0&&flag)||(s%3==0&&flag>=2)){
21             cout<<"red"<<'\n';
22         }else{
23             cout<<"cyan"<<'\n';
24         }
25     }
26     return 0;
27 }
28 
29 /*
30 
31 */

 题意:给一个数,问他是不是可以由一个骰子塔的所有接触空气的面的数字构成。

思路:每一圈之和恒为14。则判断一下<14的就OK

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define int long long
 4  
 5 signed main(){
 6     int _;
 7     cin>>_;
 8     while(_--){
 9         
10         int n;
11         cin>>n;
12         if(n%14<=6&&n%14>=1&&n>=14){
13             cout<<"YES";
14         }else{
15             cout<<"NO";
16         }
17     cout<<'\n';
18     } 
19     return 0;
20 }

 题意:往一个矩阵里面填数,使得每行每列的gcd都两两各不相同。且最大的gcd最小。

思路:按照题意构造。

 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 #define int long long
 5 int arr[151000];
 6 int mp[1500][1500];
 7 signed main(){
 8     int r,c;
 9     cin>>r>>c;
10     if(r==1&&c==1){
11         cout<<"0";
12         return 0;
13     }
14     if(r==1){
15         int num=2;
16         for(int i=1;i<=c;i++){
17             printf("%lld ",num);
18             num++;
19         }
20     }else if(c==1){
21         int num=2;
22         for(int i=1;i<=r;i++){
23             printf("%lld\n",num);
24             num++;
25         }
26     }else{
27         int num=c+1;
28         for(int i=1;i<=r;i++){
29             arr[i]=num;
30             num++;
31         }
32         for(int i=1;i<=c;i++){
33             for(int j=1;j<=r;j++){
34                 mp[j][i]=i*arr[j];
35             }
36         }
37         for(int i=1;i<=r;i++){
38             for(int j=1;j<=c;j++){
39                 printf("%lld ",mp[i][j]);
40             }
41             printf("\n");
42         }
43     }
44     return 0;
45 }

猜你喜欢

转载自www.cnblogs.com/pengge666/p/12069692.html
今日推荐