栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 3666 Alice and Bob

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 3666 Alice and Bob

#include <vector>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;const int N = 1e4 + 5;vector<int> g[N];bool vis[N];int sg[N];void dfs(int u){ vis[u] = true; vector<int> num; for(int i=0;i<(int)g[u].size();i++) { int v = g[u][i]; if(!vis[v]) dfs(v); num.push_back(sg[v]); } sort(num.begin(),num.end()); int n = unique(num.begin(),num.end()) - num.begin(); sg[u] = 0; for(int i=0;i<n;i++) { if(sg[u] == num[i]) sg[u]++; else break; }}int main(){ int n, ncase = 0; while(~scanf("%d",&n)) { memset(vis,false,sizeof(vis)); for(int u=1;u<n;u++) { g[u].clear(); int num, v; scanf("%d",&num); while(num--) { scanf("%d",&v); g[u].push_back(v); } } g[n].clear(); for(int i=1;i<=n;i++) if(!vis[i]) dfs(i); int Q; scanf("%d",&Q); printf("Case %d:n",++ncase); while(Q--) { int num, i, ans = 0; scanf("%d",&num); while(num--) { scanf("%d",&i); ans ^= sg[i]; } puts(ans?"Alice":"Bob"); } } return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372047.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号