CF1462B Last Year's Substring
阿新 • • 發佈:2021-01-09
本題解與Luogu同步
題解
這題說實話不難,重點是能不能想到這個點。
首先,我們想一想,要想直接把一個字串去掉一段連續的字串後只剩2020,那麼,應該只有以下幾種情況:
-
\(2020……\)
-
\(202……0\)
-
\(20……20\)
-
\(2……020\)
-
\(……2020\)
所以我們就直接進行特判,然後輸出就可以了
Code
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; char s[207]; int t, n; int main() { scanf("%d", &t); while(t--) { scanf("%d", &n); cin >> s; if(s[0] == '2' && s[1] == '0' && s[2] == '2' && s[3] == '0') { printf("YES\n"); continue; } if(s[n - 4] == '2' && s[n - 3] == '0' && s[n - 2] == '2' && s[n - 1] == '0') { printf("YES\n"); continue; } if(s[0] == '2' && s[n - 3] == '0' && s[n - 2] == '2' && s[n - 1] == '0') { printf("YES\n"); continue; } if(s[0] == '2' && s[1] == '0' && s[n - 2] == '2' && s[n - 1] == '0') { printf("YES\n"); continue; } if(s[0] == '2' && s[1] == '0' && s[2] == '2' && s[n - 1] == '0') { printf("YES\n"); continue; } printf("NO\n"); } return 0; }