随笔分类 - 方法
摘要:(一)巴什博弈(Bash Game):只有一堆n个物品,两个人轮流取,每次最少取一个,最多取m个,最后取完物品者得胜。若有A,B两人,若A先取,在双方都选择最优时,A能否取胜。若 n%(m+1)!=0则先取者A必胜,因为第一次A先取走n%(m+1)个剩下的是(m+1)的倍数因最多只能去m个因此B若去走K个则A可以取走( m+1-k)个他们取走的和为( m+1)则每次剩下的都是(m+1)的倍数,因此A必胜(二)威佐夫博弈(Wythoff Game):有两堆若干物品,两个人轮流从某一堆或同时从两堆中取走同样多的物品,规定每次至少取一个,多者不限,最后取光者胜利。若有A,B两人,A先取A面对(0,0
        阅读全文
                
摘要:第一种:对于第一种填数:我们一 1 为起始点 先判断下一个点是否越界 和 是否是空的 ,来决定是转还是填View Code 1 #include<stdio.h> 2 3 int a[100][100]; 4 5 int main() 6 { 7 int n,i,j,t,x; 8 scanf("%d",&n); 9 t=n*n;10 x=0;11 i=-1;12 j=n-1;13 while(x<t)14 { 15 while(i<n-1&&!a[i+1][j])a[++i][j]=++x;16 while...
        阅读全文
                
摘要:声明:借鉴高手!一、 同余对于整数除以某个正整数的问题,如果只关心余数的情况,就产生同余的概念。定义1 用给定的正整数m分别除整数a、b,如果所得的余数相等,则称a、b对模m同余,记作a≡b(mod m),如 56≡0 (mod 8)。定理1 整数a,b对模m同余的充要条件是 a-b能被m整除(即m|a-b)。证 设a=mq1+r1, 0<=r1<m; b=mq2+r2, 0<=r2<m.若a≡b(mod m),按定义1,r1=r2,于是a-b=m(q1+q2),即有m|a-b.反之,若m|a-b,即m|m(q1-a2)+r1-r2,则m|r1-r2,但|r1-r2|&
        阅读全文
                
摘要:高次方求模:比如a的b次方对c求模我们可以把b 化为二进制形式看那一位有1比如b=10101则 a^b=a^(10000)*a^(100)*a^(1)以函数形式体现:long long a,b,c;void han(){ long long t,s; for(t=a,s=1;b;b>>=1,t*=t,t%=c)//用b>>=1查看b中1 if(b&1){s*=t;s%=c;} printf("%lld\n",s%c); }
        阅读全文
                
摘要:树状数组:(插点法插线法)最常见的一种用途是求一个数列的前N项和比如说数组a[] 吧:把他转化一下存入树状数组c[] 中如:c[1]=a[1]c[2]=a[1]+a[2]c[3]=a[3]c[4]=a[1]+a[2]+a[3]+a[4]......................................................c[16]=a[1]+a[2]+....................+a[16]也即c[n]管理着2^k个数 (k代表二进制n最后连续有多少个0) c[n]为这个连续2^k个数的最后一个因此有 c[n]=a[n-2^k+1]+.....+a[n];则:
        阅读全文
                
摘要:文章作者:yx_th000 文章来源:Cherish_yimi (http://www.cnblogs.com/cherish_yimi/) 转载请注明,谢谢合作。关键词:trie trie树 数据结构前几天学习了并查集和trie树,这里总结一下trie。 本文讨论一棵最简单的trie树,基于英文26个字母组成的字符串,讨论插入字符串、判断前缀是否存在、查找字符串等基本操作;至于trie树的删除单个节点实在是少见,故在此不做详解。l Trie原理Trie的核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的。l Trie性质好多人说trie的根节点不包含任何字符信
        阅读全文
                
摘要:1.最小生成树---普里姆 或 kruskal 算法2.一笔画问题(一个图走过所有边且不重复)---欧拉路 或 欧拉回路3.图的连通性问题---并查集
        阅读全文
                
                    
                
浙公网安备 33010602011771号