_Never_

I walk slowly,but I will never stop.

导航

2012年3月1日 #

POJ 1112 Team them up

摘要: 求反图+DFS求连通分量并染色+DP 阅读全文

posted @ 2012-03-01 11:10 _Never_ 阅读(1301) 评论(2) 推荐(0)

2011年12月2日 #

红黑树

摘要: 详细讨论红黑树,适合初学者参考。 阅读全文

posted @ 2011-12-02 08:25 _Never_ 阅读(48807) 评论(29) 推荐(21)

2011年11月15日 #

平衡二叉树(解惑)

摘要: 平衡二叉树的详细讲解及纯C实现,只适合初学者 阅读全文

posted @ 2011-11-15 11:20 _Never_ 阅读(75176) 评论(22) 推荐(19)

2011年11月9日 #

HDU 4109 Instrction Arrangement

摘要: 题意:给你一些机器指令,某些有先后顺序(若A->B,C->B则必须A、C执行完才能执行B),且有安全距离(若A->B 距离n)那么必须在从A执行算起n时间,才能执行B,一次可以运行多个指令,指令的完成只花费1,最后求执行完所有指令所需的最短的时间。思想:① 求所有入度为0的点的“最短路”,这里的最短路其实是求最长路(dist[N]->0;dist[v]+map[v][u]>dist[u])!!! ② 求出拓扑序列,计算出所有序列的最大值(这里就是最后一个执行玩的时间,最大时间)View Code ///WA 没过 错误的///改改AC了!我都不敢相信!!O__O& 阅读全文

posted @ 2011-11-09 19:37 _Never_ 阅读(439) 评论(0) 推荐(0)

2011年11月8日 #

HDU 2473 Junk-Mail Filter

摘要: 原来是这样啊、、、、、、、、、、、、、、、、、、!题意:给你一些相连的两点(带传递,显然是集合),并会对某些点进行删除操作,最终问你集合的数目显然是并查集,可是并查集,怎么去删除一个点呢??我想想想……晕了!不知道怎么删除。。最后……思想:删除操作就是用其他(用不到的)的点代替该点,JUST AND ONLY SO!!原集合中的该点JUST作为其它某些点的桥梁,通向根节点的桥梁,也就是ancestor[x]不变!若再删除,再用其它点代替,那么曾经的替代品也成了桥梁!!代码:View Code #include <stdio.h>#include <string.h>#d 阅读全文

posted @ 2011-11-08 10:10 _Never_ 阅读(794) 评论(0) 推荐(0)

2011年11月7日 #

递归DFS中不该变的量,无意中变了!!

摘要: 题目:HDU 2464 A Pair of Graph代码:View Code #include <stdio.h>#include <string.h>int A[10][10],B[10][10];int vary[10];bool flag[10];int small1,small2,min;void action(int n){ int i,j,val=0; for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(A[vary[i]][vary[j]]==B[i][j]) continu... 阅读全文

posted @ 2011-11-07 19:08 _Never_ 阅读(312) 评论(0) 推荐(0)

HDU 2464 A Pair of Graph

摘要: 题意:给出顶点数一样俩个图A、B 。试着给A、B添边或去边操作(给出A、B添、去边的代价)使最小的代价使A,B两图看着一样!该题是2011-11-6周赛的题,当时AC率这个最高了,所以去做这个了,当把题意读懂时发现,这、、、根本无法解决!!无奈之下放弃了,没注意n的范围,也不敢想暴力!最有C小加搜了解题报告,说都是暴力枚举。然后我就试试暴力了,可是如何暴呢?仍是没思路、、、、、没办法只有看解题报告了。现在算是明白了、、、、、!一个通过率最高的题就不会做,这说明什么?JUST WATER!思路:暴力枚举(用到的是排列)。假设A、B两图经过操作两图一样了。那么此时一定存在:A的点与B的点一一对应! 阅读全文

posted @ 2011-11-07 18:56 _Never_ 阅读(419) 评论(0) 推荐(0)

2011年10月29日 #

POJ 1502 MPI Maelstrom

摘要: ..................................................................先无语,必须无语!!!!应该说是一个很简单的题:赤裸的Dijsktra!但是题意读不懂,用着有道+1个小时+坚强的意志=终于读懂了!。。。。。。。English。。。。。。。。。。然后速想代码架构,速敲代码!!但是测试数据就错了!!!!!最终调试!!发现定义最大值错了!!即#define MAX 0x7fffffff这样一来,在最大值的基础上再加上一个数就越界了,可能就是负数!以至于更新dist的值整成负的了!!!记住!这个错误,以后别犯了!!!View Code 阅读全文

posted @ 2011-10-29 23:26 _Never_ 阅读(261) 评论(0) 推荐(0)

2011年10月28日 #

POJ 1466 Girls and Boys

摘要: 。。。。。。。。。。。啥也不想说,我只想骂出题人!!!能不能人性点!!!R尼玛,出题数据,那是随便随机的??你知道你浪费了多少人的时间??你知道你折磨了多少人的心神??经过被百般蹂躏,我知道了它的后台数据的某些一定是不对照的,比如2跟1有关系,1跟2关系并不一定给你写出了你题目很清楚的告诉读者:跟个人的有关系的人数!!你如果说1跟2搞,而2却不一定跟1搞,那总人数-匹配数/2也不对!尼玛的怎么让AC!!很明显必须是相互的!!尼玛你这样搞是会折寿的……算了,说点正事……这个是:求最大独立集最大独立集==N-最大匹配数(即最大覆盖点数)理解:除去有关系了,都是没关系的这个相对好理解一点,那俩关系哥 阅读全文

posted @ 2011-10-28 11:42 _Never_ 阅读(480) 评论(0) 推荐(0)

2011年10月27日 #

POJ 1325 Machine Schedule

摘要: 这个题我想了一上午没都想的思路,刚开始按照自己的思维进行探索,结果一个小小的例子就被否定了!无奈之下还是去看了解题报告……原来它是一个:求最小覆盖点数。额,本来对这个概念并不是太熟悉,接触更多的是最大匹配~解题思想:本来这个题给人的情形是MachineA——Jobs——MachineB,根本想不到可以转换成MachineA——MachineB即转化为求最小覆盖点数,而最小覆盖点数==最大匹配数,即求最大匹配数即可!具体的说A——B,把边作为jobs,而任意一边都可以用A或者B的某一种模式完成,所以每一条边,都可以连着A_i,B_j(i,j表示模式i,j),则试着选取最少的A_i和B_j即选择最 阅读全文

posted @ 2011-10-27 15:36 _Never_ 阅读(210) 评论(0) 推荐(0)