Educational Codeforces Round 63 (Rated for Div. 2)·
A. Reverse a Substring
就是反转一部分字符串,然后让字符串按照字典序变小,那么只要有一块时降序就可以了
# include <bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	int flag=1;
	
	string a;
	
	scanf("%d",&n);
	cin>>a;
	
	for(int i=1;i<n;i++){
		if(a[i]<a[i-1]){
			flag=0;
			printf("YES\n");
			printf("%d %d",i,i+1);
			break;
		}
	}
	if(flag) printf("NO");
	 
	return 0;
 } 
B. Game with Telephone Numbers
算是一个博弈论吧。。。就是要考虑对方最坏的情况:对方每次都取8,而且都取的不是后10位的8,都取的是可能称为第一位的8
那么1.考虑8的个数是否够  2.考虑取完以后11位号码的第一位有可能是8嘛(QWQ,因为介个一直WA,WAW想哭)
# include <bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	string s;
	int a=0;
	int b=0;
	int flag=0;
	
	scanf("%d",&n);
	cin>>s;
	
	a=(n-11)/2;
	for(int i=n-1-10;i>=0;i--){
		if(s[i]=='8'){
			b++;
		}
	}
	
	if(b>a){
		printf("YES"); 
	}else{
		printf("NO");
	}
	
	return 0;
}
C. Alarm Clocks Everywhere
就是要求从所给的间隔里面选择一个间隔,使得从某个数开始,闹钟按照间隔响,然后在要求的时刻都会响
n那么所选的时刻只要是间隔的gcd的因子就行
<因为printf("%d")了,一直WA1,怀疑人生。。。>
# include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int MAXN=3e5+10;
//LL gcd(LL a,LL b) {return b?gcd(b,a%b):a;}
LL x[MAXN];
LL p[MAXN];
LL c[MAXN];
LL ys=0;
int main()
{
	LL n,m;
	LL d=0;
	int flag=0;
	scanf("%lld %lld",&n,&m);
	for(LL i=0;i<n;i++){
		scanf("%lld",&x[i]);
		if(i){
			c[i]=x[i]-x[i-1];
		}
	}
	ys=c[1];
	for(LL i=2;i<n;i++){
		ys=__gcd(ys,c[i]);
	}
	for(LL i=1;i<=m;i++){
		scanf("%lld",&p[i]);
		if(ys%p[i]==0){
			flag=1;
			d=i;
			break;
		}
	}
	if(n<2||m<1) flag=0;
	if(flag){
		printf("YES\n");
		printf("%lld %lld",x[0],d);
	}else{
		printf("NO");
	}
	return 0;
}
    向wjmzbmr学习,acm本就是逆天而行。
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号