Hướng dẫn giải của Bedao Grand Contest 08 - MAGAME


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

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;
}

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.