Codeforces Round #498 (Div. 3)
生活随笔
收集整理的這篇文章主要介紹了
Codeforces Round #498 (Div. 3)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
D. Two Strings Swaps
容易發(fā)現(xiàn),a[i], a[n-i+1], b[i], b[n-i+1] 可以互相交換,且不會受其他地方影響,關(guān)鍵在于對于這4個字符怎們計算最小的操作數(shù),討論到死。。??戳藙e人的代碼,用不同的字符對數(shù)表示字符的組成,就比較容易判斷了。還不太清楚是如何想到的。。。只會寫暴力枚舉本質(zhì)不同的這種正方形。。
#include <bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;++i) typedef long long ll; const int N = 2e5 + 7; using namespace std; int n,ans,num[366]; char s1[N],s2[N]; int cal(string s1,string s2) {if(s1==s2)return 0;if(s1[0]==s1[1]&&s2[0]==s2[1]) return 0;string t=s1; t+=s2;int d=0;for(int i=0;i<4;++i)for(int j=0;j<i;++j) if(t[i]!=t[j])++d;int ans=0;if(d==3) ++ans;else if(d==5&&s1[0]==s1[1]) ans+=2;else if(d==5&&s1[0]!=s1[1]) ans++;else if(d==6) ans+=2;return ans; } //int id[111],M[N]; //int ck(int a,int b,int c,int d) { // memset(id,0,sizeof(id)); // int cc=0; // if(!id[a])id[a] = ++cc; // if(!id[b])id[b] = ++cc; // if(!id[c])id[c] = ++cc; // if(!id[d])id[d] = ++cc; // int t = id[a]*10000 + id[b]*1000 + id[c]*100 + id[d]; // return !M[t]; //} //void biao(int a,int b,int c,int d) { // memset(id,0,sizeof(id)); // int cc=0; // if(!id[a])id[a] = ++cc; // if(!id[b])id[b] = ++cc; // if(!id[c])id[c] = ++cc; // if(!id[d])id[d] = ++cc; // // int t = id[a]*10000 + id[b]*1000 + id[c]*100 + id[d]; // M[t] = 1; //} int main() { // for(int i=0;i<4;++i) // for(int i1=0;i1<4;++i1) // for(int i2=0;i2<4;++i2) // for(int i3=0;i3<4;++i3) { // if(ck(i,i1,i2,i3)){ // printf("%d %d\n",i,i1); // printf("%d %d\n\n",i2,i3); // biao(i,i1,i2,i3); // } // }scanf("%d",&n);scanf(" %s",s1+1);scanf(" %s",s2+1);if(n%2==0) {for(int i=1;i<=n/2;++i) {int p = n - i + 1;string t1,t2;t1+=s1[i];t1+=s1[p];t2+=s2[i];t2+=s2[p];sort(t1.begin(),t1.end());sort(t2.begin(),t2.end());ans += cal(t1,t2);}}else {for(int i=1;i<=n/2;++i) {int p = n - i + 1;string t1,t2;t1+=s1[i];t1+=s1[p];t2+=s2[i];t2+=s2[p];sort(t1.begin(),t1.end());sort(t2.begin(),t2.end());ans += cal(t1,t2);}if(s1[n/2+1]!=s2[n/2+1])++ans;}printf("%d\n",ans);return 0; }轉(zhuǎn)載于:https://www.cnblogs.com/RRRR-wys/p/9321287.html
總結(jié)
以上是生活随笔為你收集整理的Codeforces Round #498 (Div. 3)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux防火墙查看状态firewall
- 下一篇: 线段树动态开点区间加区间求和