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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CodeForces 139C Literature Lesson(模拟)

發布時間:2023/12/10 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CodeForces 139C Literature Lesson(模拟) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  這個題,讀懂了就是水,讀不懂就沒辦法下手,論英語閱讀的重要性...只有五種形式,第一種萬能型aaaa,是另外3種的特殊情況,第二種克萊里林四行打油詩aabb形式,第三種是交替的abab形式,第四種是封閉的abba形式,第五種就是NO.題目的意思就是給我們四個原串,讓我們counting from the end(從后往前數)找到第k個元音字母,從這個位置截取原串的suffixes(后綴),形成四個新串,判斷這四個新串符合以上五中情況中的哪一個.如果原串不足k個元音字母,那情況直接就是no.在判斷的時候需要注意aaaa不用管,它可以與任意情況重合(除NO以外),而剩下的4中任意兩種都不可重合,代碼及注釋如下:

#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; bool mark[10];///0=aaaa,1=aabb,2=abab,3=abba,4=NO char str[10110],newstr[5][10110]; char output[5][5] = {"aabb","abab","abba"}; void Judge() {if( !strcmp(newstr[0],newstr[1])&& !strcmp(newstr[0],newstr[2])&& !strcmp(newstr[0],newstr[3]))mark[0] = 1;else if(!strcmp(newstr[0],newstr[1])&&!strcmp(newstr[2],newstr[3])) mark[1] = 1;else if(!strcmp(newstr[0],newstr[2])&&!strcmp(newstr[1],newstr[3])) mark[2] = 1;else if(!strcmp(newstr[0],newstr[3])&&!strcmp(newstr[1],newstr[2])) mark[3] = 1;else mark[4] = 1; } bool Is_vowels(char a) {if(a=='a'||a=='e'||a=='i'||a=='o'||a=='u') return true;return false; } int main() {int n,k;scanf("%d%d",&n,&k);memset(mark,0,sizeof(mark));while(n--){//memset(newstr,0,sizeof(newstr));int tot,ok=1;for(int i = 0; i < 4; i++){scanf("%s",str);int lens = strlen(str),pos;tot=0;for(int j = lens-1; j >= 0; j--){if(Is_vowels(str[j])){tot++;}if(tot == k){pos = j;break;}}if(tot < k){mark[4] = 1;ok = 0;}if(tot == k)///這個判斷必須要有,否則RE {for(int j = pos; j < lens; j++){newstr[i][j-pos] = str[j];}newstr[i][lens-pos] = '\0';///換行符結束標識 }}if(ok)Judge();}if(mark[4]) puts("NO");///注意判斷順序else{bool flag = true;for(int i = 1; i <= 3; i++){for(int j = i+1; j <= 3; j++){if(mark[i] && mark[j]){flag = false;break;}}}if(!flag) puts("NO");else if(flag){for(int i = 1; i <= 3; i++){if(mark[i]){printf("%s\n",output[i-1]);flag = false;break;}}if(flag){puts("aaaa");}}}return 0; }

?

轉載于:https://www.cnblogs.com/jifahu/p/5450434.html

總結

以上是生活随笔為你收集整理的CodeForces 139C Literature Lesson(模拟)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。