1. 程式人生 > 其它 >pta L1-078 吉老師的迴歸

pta L1-078 吉老師的迴歸

評價:謎一樣的題,讀題很費勁

題目連結:https://pintia.cn/problem-sets/994805046380707840/problems/1386335159927652357

其實這道題歸根結底還是模擬,只不過讀題有些費勁

其實按照題目要求來就是了;

題目說要求吉老師正在做的題,那就判斷一下吉老師前面已經過了多少“不簡單的題”,拿第一個樣例來說,

L1-3是吉老師做的第一個“不簡單的題”,所以說吉老師目前正在攻關第四題;

那這樣就很明顯了,如果吉老師做的題目已經等於他做過的題目加一,那輸出當前的字串就是吉老師當前正在做的;

如果吉老師做過的不簡單的題在他做過的題的範圍以內,那就證明了吉老師已經做完,即AK,

這樣理解,在把第一個樣例揪出來,我們這次設m是3;

可以看到,在這5個題目裡有兩個是“不簡單的題”,而吉老師只做“不簡單的題”,這就說明吉老師已經把“不簡單的題”做完了;對,就是這樣

需要注意的是,這裡用了字串查詢STL函式

不得不說的是,字串STL在競賽中應用還是一個比較廣泛的知識點考察,今天晚上我或許會整理一下字串STL的相關知識

Talk is cheap. Show me the code.

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n,m;
 4 int cnt;//統計做過的不簡單的題個數 
 5 int
main() { 6 cin>>n>>m; 7 getchar(); 8 for(int i=0; i<n; i++) 9 { 10 string s; 11 getline(cin,s); 12 if(s.find("qiandao")==s.npos&&s.find("easy")==s.npos) //判斷是否含有“easy"與"qiandao" 13 { 14 cnt++; 15 if(cnt==m+1
)//如果吉老師做到了已做過的題的下一個 16 { 17 cout<<s<<endl;//這是吉老師正在做的題 18 } 19 } 20 } 21 if(cnt<=m)//在這個範圍內就AK; 22 cout<<"Wo AK le\n"; 23 return 0; 24 }