Codeforces Round #738 (Div. 2) 题解

Posted registerGen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #738 (Div. 2) 题解相关的知识,希望对你有一定的参考价值。

比赛地址:https://codeforces.com/contest/1559

只有 ABCD1E 的题解,D2 不会。

A

可以证明,我们能把这个序列变成 \\([x,x,\\cdots,x]\\),其中 \\(x=\\land_{i=1}^n a_i\\)

所以答案就是 \\(\\land_{i=1}^n a_i\\)

using ll=long long;

void mian(){
	int n;scanf("%d",&n);
	std::vector<int> a(n);
	for(auto &i:a)scanf("%d",&i);
	int ans=a[0];
	for(auto i:a)ans&=i;
	printf("%d\\n",ans);
}

B

随便贪心。

using ll=long long;

const int N=100;

int n;
char s[N+10];

void mian(){
	scanf("%d%s",&n,s+1);
	int fst=-1;
	for(int i=1;i<=n;i++)
		if(s[i]!=\'?\'){fst=i;break;}
	if(fst==-1){
		for(int i=1;i<=n;i++){
			if(i&1)s[i]=\'R\';
			else s[i]=\'B\';
		}
		puts(s+1);
	}
	else{
		// 下一行的意思是如果 s[i+1] = \'R\',则 s[i] = \'B\',反之同理。
		for(int i=fst-1;i>=1;i--)if(s[i]==\'?\')s[i]=s[i+1]^\'R\'^\'B\';
		for(int i=fst+1;i<=n;i++)if(s[i]==\'?\')s[i]=s[i-1]^\'R\'^\'B\';
		puts(s+1);
	}
}

以上是关于Codeforces Round #738 (Div. 2) 题解的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #738 (Div. 2) 题解

Codeforces Round #738 (Div. 2) A - D1 题解

Codeforces Round #738 (Div. 2) A - D1 题解

Codeforces Round #738 (Div. 2) A - D1 题解

Codeforces Round #738 (Div. 2)

Codeforces Round #738 (Div. 2) 题解