摘要: /*稍有难度的题目。sg游戏树删边游戏。不过在树的基础上加入了环,这个环是一个特殊的环,每个环和树只有一个公共节点,没有公共边。而且存在重边。所以对于无向图的保存需要注意这里除了记录下每个节点的连接边以外,还要记录每两个节点之间边的个数。然后分析环的特性:没一个环最终都可以化简,奇数环可以化简为一条边,偶数环可以删去,详细可参见论文。*/#include <cstdio>#include <vector>#include <cstring>using namespace std;int N;int M,K;vector<int> G[110];i 阅读全文
posted @ 2011-06-15 14:37 AC2012 阅读(218) 评论(0) 推荐(0) 编辑
摘要: /*树的删边游戏,sg游戏的一种。sg值的计算是这样的。。定理: 叶子节点的sg为0,中间节点的sg值等于所有子节点的sg加1后的异或*/#include <cstdio>#include <vector>using namespace std;int N;vector<int> G[100001];int sg[100001];bool used[100001];int dfs(int x){ int& cur = sg[x]; if(cur!=-1) return cur; cur = 0; used[x] = true; for(int i=G 阅读全文
posted @ 2011-06-15 11:04 AC2012 阅读(203) 评论(0) 推荐(0) 编辑
摘要: /*树的删边游戏,sg游戏的一种。sg值的计算是这样的。。定理: 叶子节点的sg为0,中间节点的sg值等于所有子节点的sg加1后的异或*/#include <cstdio>#include <vector>using namespace std;int N;vector<int> G[50001];int sg[50001];bool used[50001];int dfs(int x){ int& cur = sg[x]; if(cur!=-1) return cur; cur = 0; used[x] = true; for(int i=G[x] 阅读全文
posted @ 2011-06-15 10:52 AC2012 阅读(198) 评论(0) 推荐(1) 编辑
摘要: /*这个题目和那个连续线段的sg游戏很像。也是要连续的取值。但是这样堆会增加。所以则求sg的时候,要考虑各种子情况。没看懂题目,有点纠结啊*/#include <cstdio>#include <cstring>int S[3];int M;int N;int sg[1010];bool used[1010];int dfs(int n){ int& cur = sg[n]; if( cur!=-1 ) return cur; memset(used,0,sizeof(used)); for(int i=0;i<3;i++) { if(n>=S[i] 阅读全文
posted @ 2011-06-15 00:54 AC2012 阅读(127) 评论(0) 推荐(0) 编辑