[結論]JZOJ 5912 VanUSee
阿新 • • 發佈:2018-10-19
field 然而 們的 pre clas splay 童鞋 偏移 數據
分析
首先我們知道,最優策略就是和對方進行相反操作(顯而易見)
然後我們先討論串一減掉串二剩下字符個數為偶數的情況
首先如果有個字符串在正中間pty必贏
然後我們考慮字符串各往左右偏移一格的情況
pty可以在對方刪掉一邊以後再刪一次那一邊,然後對方為了贏會反轉操作,那麽就可以向左/右多進一格,也只能多進一個
那麽偶數情況只有兩種:
1、正中間
2、中間左右各偏移一格都是串二
考慮奇數,容易想到和偶數也差不多一個情況(2)
#include <iostream> #include <cstdio> #include <cstring> using namespace std; string a,b; int main() { freopen("vanusee.in","r",stdin); freopen("vanusee.out","w",stdout); int t; scanf("%d",&t); while (t--) { cin>>a>>b; int l1=a.length(),l2=b.length(); if (l1<=l2) { if (a==b) { printf("pty\n"); continue; } printf("cqf\n"); continue; } if (!((l1-l2)%2)) { string aleft=a.substr((l1-l2>>1)-1,l2), amid=a.substr((l1-l2>>1),l2), aright=a.substr((l1-l2>>1)+1,l2); if (aleft==aright&&aleft==b||amid==b) { printf("pty\n"); continue; } printf("cqf\n"); continue; } string aleft=a.substr(l1-l2>>1,l2), aright=a.substr((l1-l2>>1)+1,l2); if (aleft==aright&&aleft==b) printf("pty\n"); else printf("cqf\n"); } }View Code
[結論]JZOJ 5912 VanUSee