上一页 1 2 3 4 5 6 7 ··· 24 下一页
摘要: /*1AC的感觉还是比较美妙的博弈问题,关键要知道sg函数的本质,根据定义计算出sg函数值,就可以转化为普通的Nim游戏了还算比较简单吧。*/#include <cstdio>#include <cstdlib>#include <vector>#include <cstring>#include <algorithm>using namespace std;int K,S[10010];int M;vector<int> d[110];int N;int sg[10010];bool vis[10010];int ans 阅读全文
posted @ 2011-06-14 00:35 AC2012 阅读(139) 评论(0) 推荐(0) 编辑
摘要: /*Anti-SG游戏*/#include <cstdio>int T;int N;int main(){ int ans,k,a; scanf("%d",&T); while(T--) { scanf("%d",&N); ans = 0; k = 0; for(int i=0;i<N;i++) { scanf("%d",&a); ans ^= a; if( a>1 ) k++; } if(k) { if( ans ) printf("1\n"); else prin 阅读全文
posted @ 2011-06-13 22:13 AC2012 阅读(143) 评论(0) 推荐(0) 编辑
摘要: /*有SJ 定理:对于任意的一个 Anti-SG 游戏,如果我们规定当局面中所有单一游戏的 SG 值为 0 时游戏结束,则先手必胜当且仅当以下两个条件满足任意一个:(1)游戏的 SG 函数不为 0,且游戏中某个单一游戏的 SG 函数大于1。(2)游戏的 SG 函数为 0,且游戏中没有单一游戏的 SG 函数大于 1。*/#include <cstdio>int T;int N;int main(){ int a,ans,k; scanf("%d",&T); while(T--) { scanf("%d",&N); k = 0; 阅读全文
posted @ 2011-06-13 20:31 AC2012 阅读(208) 评论(0) 推荐(0) 编辑
摘要: /* 首先给定一个有向图,这个图是原图经过floyd算法求出来的。原图的强连通分量到新图依然是强连通分量,而每个强连通分量都可以用一个环表示。 所以可以先将新图进行缩点,然后形成了一个有向无环图,对其进行floyd的反操作就可以了。*/// include file#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <cctype>#include <ctime>#include <iostream>#inc 阅读全文
posted @ 2011-06-13 14:23 AC2012 阅读(196) 评论(0) 推荐(0) 编辑
摘要: /*限制路径的最短路径问题,而且多次查询。顶点个数不多使用floyd算法。限制路径,要注意排序。*/// include file#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <cctype>#include <ctime>#include <iostream>#include <sstream>#include <fstream>#include <iomanip> 阅读全文
posted @ 2011-06-12 16:41 AC2012 阅读(168) 评论(0) 推荐(0) 编辑
摘要: /*floyd求最小环。在floyd算法的基础上,我们知道第k次循环,就是求i到j经过编号1~k之间顶点的最小距离。所以可以在第k次循环的时候,利用k-1次循环的信息,找到一个最小解。k次循环完成,就找到了全局的最下解*/// include file#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <cctype>#include <ctime>#include <iostream>#include &l 阅读全文
posted @ 2011-06-12 14:33 AC2012 阅读(147) 评论(0) 推荐(0) 编辑
摘要: /*优先队列,注意直接用string速度比较慢,总之用STL比较慢自己写堆,数据结构可能会比较快*/// include file#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <cctype>#include <ctime>#include <iostream>#include <sstream>#include <fstream>#include <iomanip> 阅读全文
posted @ 2011-05-28 14:35 AC2012 阅读(162) 评论(0) 推荐(0) 编辑
摘要: /* 威佐夫博奕(Wythoff Game) 两堆 对于这种博弈,有一个通项公式:a[k] = [k*(1+sqrt(5))/2],b[k] = a[k]+k; 基于两个规律.首先枚举前几个必败态 (0,0) (1,2) (3,5) (4,7) (6,10),.... 规律是,a[k] = 等于之前没有出现的自然数 b[k] = a[k]+k 通项公式的给出,还有一个定理,beatty定理: 正无理数,alpha,beta,如果有1/a+1/b=1,那么数列[an],[bn],严格递增,而且构成正整数上的一个划分 a[n] = [cn] b[n] = a[n]+n = [c*n] +n = [ 阅读全文
posted @ 2011-05-02 20:30 AC2012 阅读(233) 评论(0) 推荐(0) 编辑
摘要: /* 有关时针和分针夹角的问题*/// include file#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <cctype>#include <ctime>#include <iostream>#include <sstream>#include <fstream>#include <iomanip>#include <bitset>#include & 阅读全文
posted @ 2011-05-02 15:51 AC2012 阅读(162) 评论(0) 推荐(0) 编辑
摘要: /* 当P>M的时候C有可能不等于P-M*/// include file#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <cctype>#include <ctime>#include <iostream>#include <sstream>#include <fstream>#include <iomanip>#include <bitset>#i 阅读全文
posted @ 2011-05-02 11:46 AC2012 阅读(100) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 24 下一页