日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

CodeForces - 1215C Swap Letters(暴力+思维+模拟)

發(fā)布時(shí)間:2024/4/11 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CodeForces - 1215C Swap Letters(暴力+思维+模拟) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接:點(diǎn)擊查看

題目大意:給出兩個(gè)只由字母a和字母b所組成的字符串,我們記為s和t,現(xiàn)在我們可以交換兩個(gè)字符串任意位置的字母(只能在兩個(gè)串之間交換,不能在自己串中交換),現(xiàn)在問(wèn)能否通過(guò)一定次數(shù)的交換使兩個(gè)字符串相等,如果可以求出最小交換次數(shù)

題目分析:其實(shí)這個(gè)題目挺簡(jiǎn)單的,一開始想復(fù)雜了,其實(shí)我們抽象一下,就可以發(fā)現(xiàn),對(duì)于每個(gè)位置i無(wú)非只有幾種情況:

  • a[i]==b[i]
  • a[i]!=b[i]
  • a[i]='a',b[i]='b'
  • a[i]='b',b[i]='a'
  • 對(duì)于第一種情況我們就不用管了,因?yàn)橐呀?jīng)是匹配好的狀態(tài)了,如果再去進(jìn)行多余的操作一定不會(huì)是最優(yōu)解,所以我們針對(duì)第二種情況討論一下,第二種情況向下還可以再分出兩種情況,如上面所示,我們稱作可操作對(duì),顯然對(duì)于每個(gè)可操作對(duì),肯定讓同類型的可操作對(duì)兩兩匹配一定是最優(yōu)的,因?yàn)橹挥凶屜嗤N類的兩兩匹配后才可以達(dá)到間接在本字符串中交換位置的目的,所以我們記q1為第一種情況的數(shù)目,q2為第二種情況的數(shù)目:

  • q1為偶數(shù),q2為偶數(shù):我們直接兩兩匹配即可
  • q1為奇數(shù),q2為奇數(shù):我們需要將一個(gè)q2放到q1中去,也就是執(zhí)行一次swap(i,i)的操作,這樣就是第一種情況了
  • q1為奇數(shù),q2為偶數(shù):無(wú)解
  • q1為偶數(shù),q2為奇數(shù):無(wú)解
  • 剩下的實(shí)現(xiàn)就好了,這里我選擇用deque容器實(shí)現(xiàn)上述操作,因?yàn)閐eque支持隨機(jī)訪問(wèn),操作起來(lái)方便一下,然后用vector+pair維護(hù)答案

    代碼:

    #include<iostream> #include<cstdlib> #include<string> #include<cstring> #include<cstdio> #include<algorithm> #include<climits> #include<cmath> #include<cctype> #include<stack> #include<queue> #include<list> #include<vector> #include<set> #include<map> #include<sstream> #include<unordered_map> using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e5+100;int main() { // freopen("input.txt","r",stdin); // ios::sync_with_stdio(false);int n;string a,b;cin>>n>>a>>b;deque<int>q1,q2;vector<pair<int,int>>ans;for(int i=0;i<n;i++){if(a[i]!=b[i]){if(a[i]=='a')q1.push_back(i+1);elseq2.push_back(i+1);}}if((q1.size()+q2.size())&1)//特判情況3和情況4return 0*printf("-1\n");if(q1.size()&1)//情況2{int pos=q2.front();q2.pop_front();ans.push_back(make_pair(pos,pos));q1.push_back(pos);}while(q1.size()){ans.push_back(make_pair(q1[0],q1[1]));q1.pop_front();q1.pop_front();}while(q2.size()){ans.push_back(make_pair(q2[0],q2[1]));q2.pop_front();q2.pop_front();}printf("%d\n",ans.size());for(int i=0;i<ans.size();i++)printf("%d %d\n",ans[i].first,ans[i].second);return 0; }

    ?

    超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

    總結(jié)

    以上是生活随笔為你收集整理的CodeForces - 1215C Swap Letters(暴力+思维+模拟)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 手机看片国产1024 | 中国大陆一级毛片 | 夜夜躁狠狠躁日日躁av | 日韩资源站 | 永久免费av无码网站性色av | 黄色的网站在线观看 | 国产人妖ts重口系列网站观看 | 日韩在线一区二区 | 国产无毛av | 亚洲一线二线在线观看 | 精品人妻一区二区三 | 一区二区三区四区av | 欧美美女黄色 | 日本黄a| 性v天堂| 日本乱淫视频 | wwwav在线 | 日韩欧美自拍偷拍 | 国产亚洲一区二区三区不卡 | 成人日韩在线观看 | 黄色成人影视 | 中日韩免费毛片 | 五月情网 | 免费av网址在线 | 99精品一区二区三区 | 男人插入女人阴道视频 | 午夜一区不卡 | 欧美日韩人妻精品一区在线 | 国产欧美日韩在线观看 | 制服av在线 | 操操操视频 | 无遮挡裸光屁屁打屁股男男 | 深夜在线免费视频 | 国产精品vip| 国产偷v| 96看片| 在线看成人片 | 特级丰满少妇一级aaa爱毛片 | 欧美成人a视频 | 免费无码av片在线观看 | 精品一区二区三区免费观看 | 丁香久久婷婷 | 一级黄色毛毛片 | 一起操网址 | 欧美xo影院 | 动漫女被黄漫免费视频 | 色很久| 美女啪啪国产 | 亚洲欧美日韩精品久久亚洲区 | 致命魔术电影高清在线观看 | 超碰超碰 | 国产精品三级电影 | 最好看的2019年中文视频 | 伊在线久久丫 | 日本久热 | 另类激情综合 | 亚洲美女av网站 | 娇小6一8小毛片 | 国产又黄又猛的视频 | 波多野结衣一区二区三区免费视频 | 中文字幕不卡一区 | 九九九视频在线观看 | 中文字幕观看视频 | 日韩精品电影在线观看 | 亚洲综合图色 | 哪个网站可以看毛片 | 日本伦理一区二区三区 | 91色漫| 亚洲高清久久久 | 壮汉被书生c到合不拢腿 | 成人久久毛片 | 日韩黄色片 | 午夜久久乐 | 亚洲AV无码成人精品国产一区 | 一级黄色片在线观看 | 91精品推荐 | 中文字幕第22页 | 久久女同 | 自拍偷拍色| 成人精品一区日本无码网 | 台湾佬美性中文娱乐网 | 日韩视频一区二区三区在线播放免费观看 | 久久精品2019中文字幕 | 国产大学生av | 亚洲美女视频 | 欧美超逼视频 | 秋霞中文字幕 | 日韩无 | 有声小说 成人专区 | 欧美性猛交xxxx乱大交3 | 国产精品videossex久久发布 | 97视频一区二区三区 | 超碰人人人人人 | 亚洲精品一二三四 | 三级福利片 | 国产成人精品一区二区三区视频 | 久久久久久久福利 | 一个综合色 | 污网站免费 |