首页 > 其他 > 详细

Codeforces Round #685 (Div. 2)

时间:2021-03-02 22:30:35      阅读:24      评论:0      收藏:0      [点我收藏+]

A. Subtract or Divide

题意:给定一个数,可以进行两种操作,一个是减一,一个是除以它的真因子,问最少要用多少步才能达到1

思路:特殊情况考虑1、2、3,其次就是分成偶数和奇数,偶数直接让它变成2,奇数减1然后再变成2,再进行计算

代码:

技术分享图片
 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<cstring>
 6 using namespace std;
 7 const int maxx=2e5+10;
 8 int main(){
 9     int t;
10     scanf("%d",&t);
11     while(t--){
12         int n;
13         scanf("%d",&n);
14         if(n==1){
15             printf("0\n");
16         }else if(n==2){
17             printf("1\n");
18         }else if(n==3){
19             printf("2\n");
20         }else{
21             if(n%2==0){
22                 printf("2\n");
23             }else{
24                 printf("3\n");
25             }
26         }
27     }
28 }
View Code

B. Non-Substring Subsequence

题意:从所给定的二进制字符串中找出一个子字符串,问是不是能够用不相邻的数字构成所选定的子字符串

思路:除了限定范围内的所选,从1-所选范围的最左边,是不是含有所选字符串最左边的数字,右边也相同,这样比较判断一下

代码:

技术分享图片
 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<cstring>
 6 using namespace std;
 7 const int maxx=2e5+10;
 8 int main(){
 9     int t;
10     scanf("%d",&t);
11     while(t--){
12         int n,q;
13         scanf("%d %d",&n,&q);
14         getchar();
15         char s[200];
16         for(int i=1;i<=n;i++){
17             scanf("%c",&s[i]);
18         }
19         while(q--){
20             int l,r;
21             scanf("%d %d",&l,&r);
22             char ll,rr;
23             ll=s[l];
24             rr=s[r];
25             int flag=0;
26             for(int i=1;i<l;i++){
27                 if(s[i]==ll){
28                     flag++;
29                 }
30             }
31             for(int i=r+1;i<=n;i++){
32                 if(s[i]==rr){
33                     flag++;
34                 }
35             }
36             if(flag==0){
37                 printf("NO\n");
38             }else{
39                 printf("YES\n");
40             }
41         }
42     }
43 }
View Code

C. String Equality

题意:给定字符串可以进行的操作:1)相邻的两个字符进行交换;2)相连的k个相同的字符进行+1;问是否字符串a通过多次操作变成b,然后输出结果

思路:相邻的字符可以交换那么字符串就可以转变成任何顺序的字符串,冒泡排序的原理,然后剩下的就是比较这些字符的个数,最主要的就是处理剩余的字符,然后判断是不是k的整数倍

代码:

技术分享图片
 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<cstring>
 6 using namespace std;
 7 const int maxx=2e6+10;
 8 int main(){
 9     int t;
10     scanf("%d",&t);
11     while(t--){
12         int n,k;
13         scanf("%d %d",&n,&k);
14         char c;
15         int a[30]={0},b[30]={0};
16         getchar();
17         for(int i=1;i<=n;i++){
18             scanf("%c",&c);
19             a[c-a]++;
20         }
21         getchar();
22         for(int i=1;i<=n;i++){
23             scanf("%c",&c);
24             b[c-a]++;
25         }
26         int sum=0,flag=0;
27         for(int i=0;i<=26;i++){
28             if((sum+a[i])<b[i]){//限定剩余必须是正的
29                 flag=1;
30                 break;
31             }
32             sum+=a[i]-b[i];//找到剩余
33             if(sum%k!=0){//让剩余进行变化(随便变化,所以后来才能够再进行+sum)
34                 flag=1;
35                 break;
36             }
37         }
38         if(flag==1){
39             printf("NO\n");
40         }else{
41             printf("YES\n");
42         }
43     }
44 }
View Code

D. Circle Game

题意:两个人玩游戏,从原点出发,可以移动k步,选择上下左右进行移动,坐标是(p,q),一定保证在技术分享图片这个范围内进行游戏,出了这个范围就输了游戏,问谁是赢家

思路:博弈,技术分享图片

 

 原文:https://www.cnblogs.com/hunxuewangzi/p/14019016.html

代码:

技术分享图片
 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 #include<cmath>
 5 #include<cstring>
 6 using namespace std;
 7 const int maxx=2e6+10;
 8 int main(){
 9     int t;
10     scanf("%d",&t);
11     while(t--){
12         long long int d,k;
13         scanf("%lld %lld",&d,&k);
14         long long int x=0;
15         while((x+k)*(x+k)+(x+k)*(x+k)<=d*d){
16             x+=k;
17         }
18         if((x+k)*(x+k)+x*x<=d*d){
19             printf("Ashish\n");//Ashish
20         }else{
21             printf("Utkarsh\n");
22         }
23     }
24 }
View Code

 

Codeforces Round #685 (Div. 2)

原文:https://www.cnblogs.com/bonel/p/14471105.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!