Games
https://ac.nowcoder.com/acm/contest/30256/G 前i堆石子取出j堆异或和为sum,使得sum^sum=0,使得后手必胜。 每堆石子的数量最大为1000,极端情况会出现二进制10个1,最大为1023,k最大取1023.
#include
#define long long ll
using namespace std;
const int inf=0x3f3f3f3f;
const int mod=3e9+7;
int f[1001][11][1024],a[1001];
signed main()
{
int t;scanf("%d",&t);
while(t--)
{
memset(f,0,sizeof(f));
int n,d;scanf("%d%d",&n,&d);
int sum=0;
for(int i=1;iy1>>m2>>d2;
int tmp=(d2+30-d1)%5,ans;
if(ss=="Monday")
ans=(tmp+1)%5;
else if(ss=="Tuesday")
ans=(tmp+2)%5;
else if(ss=="Wednesday")
ans=(tmp+3)%5;
else if(ss=="Thursday")
ans=(tmp+4)%5;
else
ans=(tmp+5)%5;
coutm>>k){
mp.clear();memset(vis,0,sizeof(vis));
for(int i=1;i>a>>b>>c>>d;
mp[{a,b}]={c,d};mp[{c,d}]={a,b};
vis[a][b]=1;vis[c][d]=1;
}
for(int i=1;i
关注
打赏