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 题解