Editorial for Bedao Grand Contest 08 - MAGAME
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Code mẫu
/* • Để biết được người chiến thắng ta chỉ cần quan tâm đến tính chất lẻ của X = tổng số lượt xóa của 2 người chơi khi cả 2 đều chơi tối ưu. • Ok, đối với bài này, muốn biết tính chẵn lẻ của X ta chỉ cần quan tâm đến tính chẵn lẻ của xâu ban đầu (S) và xâu kết thúc trò chơi (P) vì X = |S| – |P| (chẵn – lẻ = lẻ - chẵn = lẻ và chẵn – chẵn = lẻ -lẻ = chẵn) • Nhận xét 1: chuỗi P là chuối kết thúc cuối cùng lượt chơi nên chắc chắn có dạng abab…ab hoặc abab…aba (a và b chỉ là kí tự mẫu thôi nhé xD). • Nhận xét 2: vì kí tự hai đầu của chuỗi S không bị xóa nên chuỗi P có dạng S[1]….S[n] + Nếu S[1] = S[n] --> P có dạng abab…aba --> |P| lẻ. + Nếu S[1] <> S[n] --> P có dạng abab…ab --> |P| chẵn. Vậy là ta đã có tính chẵn lẻ của |S| và |P| rồi :D bây giờ xét điều kiện để biết ai là người thắng cuộc thôi nào :D */ #include <bits/stdc++.h> using namespace std; #define tag "MAGAME" #define checkfile(FiLeNaMe) { if(fopen(FiLeNaMe".inp","r")) freopen(FiLeNaMe".inp","r",stdin),freopen(FiLeNaMe".out","w",stdout); } ///>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> int n,m; string s; void enter(){ cin>>s; n=s.size(); } void solve(){ cout<<(n%2 - (s[0]==s[n-1]) != 0)<<"\n"; } int main() { checkfile(tag); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); enter(); solve(); return 0; }
Comments