题意:

给定字符串,两人游戏轮流删除一个字符,谁先让字符串长度为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;
}