Codeforces Round #736 (Div. 2)
花了十分钟帮朋友写了B,C就睡觉了,自己没打
B
先看上,再看左后看右
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
#define int long long
signed main()
{int t;cin>>t;while (t--){int n;cin>>n;string str1,str2;cin>>str1;cin>>str2;int cou = 0;for (int i=0;i<n;i++){if (str2[i]=='1'){if (str1[i]=='0') {cou++;str1[i] = '2';}else{if (i==n-1) {if (str1[i-1]=='1') {cou++;str1[i-1] = '2';}}else if (i==0){if (str1[i+1]=='1') {cou++;str1[i+1] = '2';}}else{if (str1[i-1]=='1') {cou++;str1[i-1] = '2';}else if (str1[i+1]=='1') {cou++;str1[i+1] = '2';}}}}}cout<<cou<<endl;}
}
C
对于一个贵族来说,如果他连接了比他高级的贵族,那就死翘翘了。没有就活着
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
#define int long long
int flag[500100];
signed main()
{int n,m;cin>>n>>m;int a,b;memset(flag,0,sizeof(flag));int cou = 0;for (int i=0;i<m;i++){cin>>a>>b;int A = min(a,b);// int B = max(a,b);flag[A] ++;if (flag[A]==1) cou++;}int q;cin>>q;int h,u,v;while (q--){cin>>a;if (a==1) {cin>>u>>v;int A = min(u,v);flag[A]++;if (flag[A]==1) cou++;}else if (a==2){cin>>u>>v;int A = min(u,v);flag[A]--;if (flag[A]==0) cou--;}else if (a==3){cout<<n-cou<<endl;}}
}