先不说什么 KaTeX、图片问题,毕竟是远古题解。
我们来看看这题解大部分在讲什么。
所谓的 sg 函数,是吧。
但是我们来看他的代码:
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int T,n,m,x,f[10100],a[10010],sg[100010];
bool vis[100010];
void getSG(int n)
{
memset(sg,0,sizeof(sg));
for (int i=1; i<=n; i++)
{
memset(vis,0,sizeof(vis));
for (int j=0; f[j]<=i; j++)
vis[sg[i-f[j]]]=1;
for (int j=0; j<=n; j++)
if (!vis[j])
{
sg[i]=j; break;
}
}
}
int main()
{
for (int i=1; i<=10001; i++) f[i]=i;
getSG(10000);
scanf("%d",&T);
while (T--)
{
scanf("%d",&n);
int ans=0;
for (int i=1; i<=n; i++)
{
scanf("%d",&a[i]);
ans^=a[i];
}
if (ans) printf("Yes\n");
else printf("No\n");
}
return 0;
}
你看这 sg 函数用了吗?
(注:把 ans^=a[i] 的 a[i] 换成 sg[i] 同样可以通过本题)
那你可能想问了:这个家伙怎么 AC 的呢?
可以参考 这篇。
我只能说他估计是缝合的各大题解。