Codeforces Round 911 (Div. 2)
2023 11 27
A. Cover in Water
题意是:有一片坑,可以进行两个操作,一个是在一个坑里倒水,一个是把水到在另一个坑里,如果一个坑的左右两边都有水,那么这个坑也会有水
思路:想想发现,只要有三个连续的坑,那么所有的坑都可以被填上,如果没有就只能一个一个的填。
using namespace std;
void solve(){
int n;
string s;
cin>>n>>s;
int ans=0;
int cnt=0;
for(int i=0;i<n;i++){
if(s[i]=='.'){
cnt++;
}
if(s[i]=='#'){
if(cnt>2){
cout<<2<<"\n";
return;
}else{
ans+=cnt;
cnt=0;
}
}
}
if(cnt>2){
cout<<2<<"\n";
}else{
ans+=cnt;
cout<<ans<<"\n";
}
}
int main(){
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int t=1;
cin>>t;
for(int i=1;i<=t;i++)solve();
return 0;
}
B. Laura and Operations
题意是:给你数字1,2,3的数量,你可以选择两个数删去,然后给另一个数加上,分别问你最后是否能只剩1,2,3
思路:拿1来说,如果abs(b-c)是偶数就行,因为不会剩余
using namespace std;
void solve(){
int a,b,c;
cin>>a>>b>>c;
int x,y;
x=abs(b-c);
if(x%2!=0){
cout<<0<<" ";
}else{
cout<<1<<" ";
}
x=abs(a-c);
if(x%2!=0){
cout<<0<<" ";
}else{
cout<<1<<" ";
}
x=abs(a-b);
if(x%2!=0){
cout<<0<<" ";
}else{
cout<<1<<" ";
}
cout<<"\n";
}
int main(){
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int t=1;
cin>>t;
for(int i=1;i<=t;i++)solve();
return 0;
}
C. Anji's Binary Tree
题意:人从二叉树的根开始从,要走到叶子节点,你可以的操作是换到树上代表你下一步的字符,问你能走到叶子节点所需要的最小操作。
树形dp 每一次的最小操作都记录下来
#include<bits/stdc++.h>
using namespace std;
const int N=3e5+10;
int l[N],r[N];
string s;
int dfs(int x){
if(l[x]==0&&r[x]==0)return 0;
int mi=1e18;
if(l[x]){
int t=s[x]!='L';
mi=min(mi,dfs(l[x])+t);
}
if(r[x]){
int t=s[x]!='R';
mi=min(mi,dfs(r[x])+t);
}
return mi;
}
void solve(){
int n;
cin>>n>>s;
s=" "+s;
for(int i=1;i<=n;i++){
cin>>l[i]>>r[i];
}
int ans=dfs(1);
cout<<ans<<"\n";
}
int main(){
ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int t=1;
cin>>t;
for(int i=1;i<=t;i++)solve();
return 0;
}
本文作者:yufan1102
本文链接:https://www.cnblogs.com/yufan1102/p/17859370.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步