摘要: 1 #include 2 #include 3 const int N = 10000; 4 const int RADIX = 10; 5 int a[N]; 6 int count[RADIX]; 7 void radixSort(int n) 8 { 9 int *bucket ... 阅读全文
posted @ 2014-11-06 19:09 justPassBy 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 1 //计数排序的思想是这样的,如果小于等于a的数字有n个,那么就把a放在第n+1个位置,从而达到排序的目的 2 //关键是怎么统计小于等于a的数字有多少个, 3 /* 4 可以采用这样一个办法,将数组元素的值映射为下标,统计该下标出现了多少次,然后再统计比该下标小或者等的下标出现了多少次, 5 ... 阅读全文
posted @ 2014-11-06 16:45 justPassBy 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 证明1:对于一个字符串S,长度为L,如果由长度为len的字符串s(字符串s的最小循环节是其本身)循环k次构成,那么字符串s就是字符串S的最小循环节那么字符串有个很重要的性质和KMP挂钩,即 i - next[i] 为字符串s的长度 i%(i - next[i]) ==0证明:字符串S由s循环k次构成... 阅读全文
posted @ 2014-10-19 19:54 justPassBy 阅读(2782) 评论(0) 推荐(0) 编辑
摘要: 在二分图的最大匹配中,每个点(不管是X集合还是Y集合)最多只能与一条匹配边相关联,然而,经常有这种问题,即二分图的一个点可以和多条匹配边相关联,但有上限,即cap[i]表示点i最多能和cap[i]条匹配边相关联。hdu 3605题意:2012来了,n个人可以逃往m个星球中的k个,每个星球都有上限,问... 阅读全文
posted @ 2014-10-14 19:07 justPassBy 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 题意:给定一个矩阵,矩阵上有的数字是1,有的是0,给定两种操作,交换某两行或者某两列,问是否能置换出对角线为1的矩阵题解:能够置换出对角线是1的矩形要求有n个1既不在同一行也不再同一列,即行列匹配,所以匹配很简单,关键是怎么求出交换的过程,cx[i] 表示第i行与第cx[i]列匹配,即第i行要变成第... 阅读全文
posted @ 2014-10-13 22:05 justPassBy 阅读(167) 评论(0) 推荐(0) 编辑
摘要: hdu1287题意:在棋盘上放置车,要求车不能相互攻击,即要求车要在不同的行和列,二分图行列匹配但是又问,那些点如果不放置车,就不能形成最大匹配,即哪些边是最大匹配的必须边判断是否是最大匹配的必须边,只要删除该边之后做匹配,将匹配的个数与原先的个数比较就知道该边是不是最大匹配的必须边 1 #incl... 阅读全文
posted @ 2014-10-13 20:45 justPassBy 阅读(333) 评论(0) 推荐(0) 编辑
摘要: poj1486题意:给出一些矩形的坐标和一些点的坐标,若点在矩形内,则该点和该矩形匹配。问哪些匹配边是可以唯一确定的,可以先求出最大匹配,然后每次删除一条匹配边,然后再求最大匹配,如果匹配个数不变,那么该边不是必须边,否则就是必须边 1 #include 2 #include 3 const i... 阅读全文
posted @ 2014-10-13 20:36 justPassBy 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 题意:给出n*m的矩阵方块,某些方块是ponds,这些方块不能出售,然后能出售的是1*2的方块要求求出有多少块1*2的方块能够出售,并输出这些方块的坐标(specia judge)关键是怎么建出二分图,然后找最大匹配可以把i+j==奇数的点提取出来,成为X集合,那么与(i,j)相邻的点就是Y集合了,... 阅读全文
posted @ 2014-10-13 16:03 justPassBy 阅读(170) 评论(0) 推荐(0) 编辑
摘要: hdu2119题意:给定一个矩形方格,每个格子里面的数字是0或者1,每次操作可以把一整行或列的1变成0,问最少多少次操作能将1全部变为0一次可以消除某一行或者某一列的1但是可以这么想,最多有多少个1即不在同一行,也不在同一列,有多少个,那么就要消多少次那么就是求行和列的最大匹配 1 #include... 阅读全文
posted @ 2014-10-12 18:37 justPassBy 阅读(222) 评论(0) 推荐(0) 编辑
摘要: hdu2458题意:给定G(G 3 #include 4 const int N = 222; 5 int G,B,m; 6 int Map[N][N]; 7 bool vis[N]; 8 int cx[N],cy[N]; 9 10 bool dfs(int u)11 {12 int i... 阅读全文
posted @ 2014-10-12 13:32 justPassBy 阅读(746) 评论(0) 推荐(0) 编辑