太原免费静态网站制作,企点qq售卖平台,公司介绍怎么写范本,开发小程序传送门 题目中已经给好了sg图#xff0c;直接在上面跑出sg函数即可。 最后看给定点的sg值异或和是否等于0就判好了。 代码#xff1a; #includebits/stdc.h
#define N 2005
#define M 6005
using namespace std;
int n,m,k,sg[N],first[N],First[N],du[N],cnt0,an… 传送门 题目中已经给好了sg图直接在上面跑出sg函数即可。 最后看给定点的sg值异或和是否等于0就判好了。 代码 #includebits/stdc.h
#define N 2005
#define M 6005
using namespace std;
int n,m,k,sg[N],first[N],First[N],du[N],cnt0,ans0;
bool vis[N];
queueintq;
struct edge{int v,next;}e[M],E[M];
inline void add(int u,int v){e[cnt].vv,e[cnt].nextfirst[u],first[u]cnt;E[cnt].vu,E[cnt].nextFirst[v],First[v]cnt;
}
inline int max(int a,int b){return ab?a:b;}
inline int read(){int ans0;char chgetchar();while(!isdigit(ch))chgetchar();while(isdigit(ch))ans(ans3)(ans1)(ch^48),chgetchar();return ans;
}
int main(){nread(),mread(),kread();for(int i1;im;i){int aread(),bread();add(a,b),du[a]; }for(int i1;in;i)if(!du[i])q.push(i);while(!q.empty()){int xq.front(),tmp0;q.pop();for(int ifirst[x];i;ie[i].next){int ve[i].v;vis[sg[v]]1,tmpmax(tmp,sg[v]);}for(int i0;itmp1;i)if(!vis[i]){sg[x]i;break;}for(int i0;itmp;i)vis[i]0;for(int iFirst[x];i;iE[i].next){int vE[i].v;--du[v];if(!du[v])q.push(v);}}for(int i1;ik;i)ans^sg[read()];printf(%s,ans?win:lose);return 0;
} 转载于:https://www.cnblogs.com/ldxcaicai/p/9738251.html