摘要: C++ code:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#define lowbit(i) (i & -i);using namespace std;struct lines{ long l, r, i;}line[30001];bool cmp_1(lines, lines);bool cmp_2(lines, lines);int main(){ long A, B, n, i, k, b, T[30001], m, j; w 阅读全文
posted @ 2011-07-16 22:43 zxfx100 阅读(178) 评论(0) 推荐(0) 编辑
摘要: C++ code:#include <iostream>#include <cstdio>using namespace std;struct heights{ long tallest, shortest;}T[131072], Ans;int main(){ long N, Q, n, M, i, height, A, B; while(scanf("%ld%ld", &N, &Q) != -1) { n = N + 1; M = 1; while(n) { n >>= 1; M <<= 1; } for( 阅读全文
posted @ 2011-07-14 15:01 zxfx100 阅读(198) 评论(0) 推荐(0) 编辑
摘要: C++ code:#include <iostream>#include <cstdio>#include <cstring>using namespace std;long max_flow();int M;long mat[201][201], d[201];int main(){ int N, i, S, E; long C; while(scanf("%d%d", &N, &M) == 2) { memset(mat, 0, sizeof(mat)); mat[0][1] = d[0] = 200000000; f 阅读全文
posted @ 2011-07-13 22:29 zxfx100 阅读(169) 评论(0) 推荐(0) 编辑
摘要: C code:/* strtok example */#include <stdio.h>#include <string.h>int main (){ char str[] ="- This, a sample string."; char * pch; printf ("Splitting string \"%s\" into tokens:\n",str); pch = strtok (str," ,.-"); while (pch != NULL) { printf ("% 阅读全文
posted @ 2011-07-12 21:50 zxfx100 阅读(378) 评论(0) 推荐(0) 编辑
摘要: 无向图G=(V, E),V非空。 【子图(subgraph)】 G'=(V', E'),V'被包含于V,E'被包含于E,G'为G的子图。 【诱导子图(induced subgraph)】 G'=(V', E'),V'被包含于V,E'={(u, v)|u, v属于V',(u, v)属于E},G'为G的诱导子图。 【团(clique)】 G'为关于V'的完全图。 一个团为极大团(maximal clique)当且仅当它不是其它团的子图。 一个图为最大团(maximum cliqu 阅读全文
posted @ 2011-03-23 20:45 zxfx100 阅读(1902) 评论(0) 推荐(2) 编辑
摘要: 【约瑟夫问题】 n(n>=3且∈N*)个人围成一圈,从某一个人开始报数,第m(m∈N*)个人退出圈,剩下的人继续报数,求最后一个退出圈的人。 [解答] 将n个人的编号设为0, 1, ..., n-1,从0开始报数0,报m-1的人退出圈。所求者编号f[n]。 第一个退出圈的人为(m-1)%n,剩下n-1个人重新编号,f[n]=(f[n-1]+m%n)%n=(f[n-1]+m)%n。 f[1]=0。 故f[n]=(f[n-1]+m)%n(其中f[1]=0)。 阅读全文
posted @ 2011-03-11 17:58 zxfx100 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 【威佐夫博弈】 有两堆物品,分别有物品数a与b(a, b∈N*),有两人A与B轮流从这两堆里去物品。取法有两种:①从其中一堆中取至少一个物品;②从每一堆取相同个数的物品(每堆至少取一个)。规定先取光物品者胜(即最后面对无物品可取者输)。求必输的条件。 [解答] 在N上考虑。设A面对(a[n], b[n])(a[n]<=b[n])必输(称(a[n], b[n])为奇异局势)。这里的a[n]与b[n]关于n严格单调递增,定义为以a[n]为第一关键字b[n]为第二关键字不重复递增排序。显然当a[0]=b[0]=0,即A面对(0, 0)时A必输。下面讨论当n∈N*时(此时a[n]<b[n] 阅读全文
posted @ 2011-03-02 21:19 zxfx100 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 【MST性质】  假设G=(V, E)是一个连通图,U是顶点集V的一个非空真子集,若(u, v)是满足u&isin;U,v&isin;V-U的边(称这种边为两栖边)且(u, v)在所有的两栖边中具有最小的权值(此时,称(u, v)为最小两栖边),则必存在一棵包含边(u, v)的最小生成树。  [证明]  反证法。假设任意一棵最小生成树都不包含(u, v),那么取其中一棵最小生成树,在此基础上添加边(u, v),根据树的性质,必产生一条至少有三条边组成的回路,这三条边中至少有两条两栖边,其中一条为(u, v),用破圈法去掉另一条两栖边,生成了另一棵最小生成树,矛盾。证毕。 阅读全文
posted @ 2011-02-11 12:38 zxfx100 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 【矩阵胚(拟阵)的定义】  矩阵胚(拟阵)是一个满足遗传性质与交换性质的序对M=(S, I),其中S是一个非空有限集,I是S的一个非空子集族。  【遗传性质的定义】  若X&isin;I,则X的任意子集&isin;I(X是遗传的)。  【交换性质的定义】  若A&isin;I,B&isin;I,且|A|&gt;|B|,则&exist;x&isin;A-B,使B&cup;{x}&isin;I。  【独立子集的定义与性质】   定义:若X&isin;I,则X是S的独立子集。  性质:独立子集的任意子集都是独立子集。   阅读全文
posted @ 2011-02-10 23:26 zxfx100 阅读(914) 评论(0) 推荐(0) 编辑