Codeforces Round 979 (Div. 2)
Codeforces Round 979 (Div. 2) 总结
A
首先第一位的贡献一定是
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <map>
using namespace std;
typedef long long ll;
const int N=1005;
int n;
void solve()
{
int mx=0,mi=N;
cin>>n;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
mx=max(mx,x);
mi=min(mi,x);
}
cout<<(mx-mi)*(n-1)<<'\n';
}
int main ()
{
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
freopen("1.out","w",stdout);
#endif
int T;
cin>>T;
while(T--) solve();
return 0;
}
B
因为不同位置的
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <map>
using namespace std;
int n;
void solve()
{
cin>>n;
cout<<1;
for(int i=1;i<n;i++) cout<<0;
cout<<'\n';
}
int main ()
{
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
freopen("1.out","w",stdout);
#endif
int T;
cin>>T;
while(T--) solve();
return 0;
}
C
充分理解下题意,当 YES
。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <map>
using namespace std;
typedef long long ll;
const int N=2e5+5;
int n;
string s;
void solve()
{
cin>>n>>s;
s="0"+s;
int st=0;
if(s[1]=='1'||s[n]=='1') st=1;
for(int i=1;i<n;i++) if(s[i]=='1'&&s[i+1]=='1') st=1;
if(st) puts("YES");
else puts("NO");
}
int main ()
{
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
freopen("1.out","w",stdout);
#endif
int T;
cin>>T;
while(T--) solve();
return 0;
}
D
首先
对于每个形如
可知
而对于
因此我们考虑每个 YES
。
最后思考修改后会有什么影响,就是看看改之前和改之后是不是
只需要求前缀最大值就行。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <map>
using namespace std;
typedef long long ll;
const int N=2e5+5;
int n,q;
int a[N],b[N];
string s;
void solve()
{
cin>>n>>q;
for(int i=1;i<=n;i++) cin>>a[i],b[i]=a[i];
for(int i=1;i<=n;i++) b[i]=max(b[i-1],b[i]);
cin>>s;
s='0'+s;
int cnt=0;
for(int i=2;i<n;i++)
if(s[i]=='L'&&s[i+1]=='R')
if(b[i]>i)
cnt++;
while(q--)
{
int x;
cin>>x;
if(s[x]=='L')
{
s[x]='R';
if(s[x+1]=='R') if(b[x]>x) cnt--;
if(s[x-1]=='L') if(b[x-1]>x-1) cnt++;
}
else
{
s[x]='L';
if(s[x-1]=='L') if(b[x-1]>x-1) cnt--;
if(s[x+1]=='R') if(b[x]>x) cnt++;
}
if(!cnt) puts("YES");
else puts("NO");
}
}
int main ()
{
#ifndef ONLINE_JUDGE
freopen("1.in","r",stdin);
freopen("1.out","w",stdout);
#endif
int T;
cin>>T;
while(T--) solve();
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」