题意:

给定字符串,两人游戏轮流删除一个字符,谁先让字符串长度为11且第一个是8即获胜。问先手是否必胜。

思路:0到n-10之间的8的数量大于可移除的数量/2即YES否则NO

参考代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cmath>
#define lson l,mid,root<<1
#define rson mid+1,r,root<<1|1
#define ll long long
const int inf = 0x3f3f3f3f;
const int N=1000000+1;
using namespace std;
int main()
{
    int n;
    cin>>n;
    string a;
    cin>>a;
    int num=n-10;
    int id=0;
    for(int i=0;i<num;i++)
    {
        if(a[i]=='8')
            id++;
    }
    if(id>num/2)
        printf("YES\n");
    else
        printf("NO\n");
    return 0;
}