
图论
文章平均质量分 59
Ice_Crazy
目前等级:资深菜鸟 。下一等级:超神菜鸟
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu1548
/*分析: 第一次写最短路,1WA,考虑到a==b的情况了,但第一次错误的输出了a,- -III,我的1A啊…… 2012-05-26*/#include"stdio.h"#include"string.h"struct A{ in原创 2012-05-26 20:34:39 · 883 阅读 · 0 评论 -
hdu1596
/*分析: 最短路变异。最短路求和、求最小值;这里求乘积、求最大值。 2012-05-31*/#include"stdio.h"struct A{ double ans; int pre; int flag;}E[1001];原创 2012-05-31 18:57:12 · 1431 阅读 · 0 评论 -
hdu2680
/*分析: 最短路,水~把图反向就行了。 2012-06-05*/#include"stdio.h"struct A{ int ans; int flag; int pre;}E[1011];int map[1001][1001原创 2012-06-05 20:21:42 · 984 阅读 · 0 评论 -
hdu1217
/*分析: 最短路径,不过这里是乘法、求最大。注意,因为是乘法,乘数可以大于1、也可以小于1,就等效于边的权值都是整数的最短路里面,每条边的权值可以有正数、也可以有负数一样。 所以果断不用Dij。第一次写Floyd,一次过哦~ 2012-0原创 2012-06-05 19:23:59 · 1795 阅读 · 4 评论 -
hdu1224
/*分析: 没用DP,也没用DFS,咱用的最短路~,只是把Dij稍稍改了下下。思路:Dij每次抽取所有已被发现的点的中路径值最短并且没有作为过中心的点作为下一个中心。而这里是:每次抽取所有已被发现的点中,没有作为过中心,并且编号最靠前的点作为下次中心。 至于这个思路的正确性,在这里就不证明了~,和Dij是相似的~原创 2012-06-07 17:18:00 · 1796 阅读 · 0 评论 -
hdu1245
/*分析: Dij的小变异。构建道路,然后Dij就行了,注意n==0的情况,1a哦~。 2012-06-08*/#include"stdio.h"#include"math.h"struct A{ double ans;原创 2012-06-08 12:46:14 · 1091 阅读 · 0 评论 -
hdu1142
/*分析: 亢奋死了,1a~ 半个月前看到的题,当时只写了一半,当时的思路最后一步需要堆来辅助。今儿再看到这个题,忽然发现……不用堆也行,虽然会堆了0.0 题目不难,看网上牛牛的思路吧,菜鸟就不献丑了0.0 明儿就期末考试了,菜菜还在这儿敲代码,要挂了T^T~ 不过不是说的,一个教室,就我一人儿、听着音乐、敲着代码,不是原创 2012-06-24 21:01:54 · 1852 阅读 · 0 评论 -
hdu3832
/*分析: 竟然用的这个方法过的: 先算出3个点分别到其它各个点的距离,然后遍历所有点,求min=MIN(min,dis_1[i]+dis_2[i]+dis_3[i]);那么结果就是n-d-1。 实在不明白,为什么这样能ac。比如:这样得出的点10作为中心是最合适的,那么如果1到10的路径上有边与2到10的路径上的边重合的话,那么这方法坑定原创 2012-07-25 11:26:40 · 1056 阅读 · 1 评论 -
hdu3631
/*分析: 用floyd过的,用dij听说也能过。 2012-07-25*/#include"stdio.h"#include"string.h"int ans[313][313];int main(){ int n,m,q; int i,l;原创 2012-07-25 13:51:19 · 854 阅读 · 0 评论 -
hdu1385
/*分析: 太犀利了~ 对于路径的字典序记录,学到了0.0。 看floyd函数就行了。 2012-07-25*/#include"stdio.h"#include"string.h"int n;int tax[111];int ma原创 2012-07-25 15:44:50 · 1641 阅读 · 0 评论 -
hdu2962
/*分析: 真稀罕,卓提类系间敢对到10s,真不赖啊~ 二分+SPFA,因为有1000与哦点,所以俺系用的SPFA,至于为啥用二分,就不俺接住所了吧~ 156MS,1a~ 2012-07-26*/#include"s原创 2012-07-26 14:32:32 · 842 阅读 · 0 评论 -
hdu2722
/*分析: 卓提不系老难啊,主要系咋弄那与哦表,子要系能弄揣那与哦表,用啥法儿都中。 俺用类SPFA,弄类系邻接表。 1a~ 2012-07-25*/#include"stdio.h"#include"string.h原创 2012-07-25 20:08:52 · 715 阅读 · 0 评论 -
hdu2363
/*分析: 枚举+Dij。 给所有类点按高低排序,跟住类枚举上下限,给这个限度内类点标记一下,然后用这些点进行Dij,就中了。 根据枚举方法不同,跳出枚举循环的判定也不同。 反正我类方法系在第一次得到一个可行的情况后,不能直接把它当做最后类答案,还得继续循环,不过当前的上下限的△如果>已经得到的dir的话,那么这种情况可以co原创 2012-07-26 16:59:47 · 635 阅读 · 0 评论 -
hdu3339
/*分析: 哎,很早以前就见到这个题了,当时觉得挺有难度的,没啥思路就一直没做。今儿再一看,哎~~~,原来当时读错题了。。。。。。 最短路+0-1DP,能量、最短路,两者哪个当背包都行。 2012-07-27*/原创 2012-07-27 15:39:31 · 956 阅读 · 0 评论 -
hdu3986
/*分析: 数组开小,让我WA了两天- -III,血的教训。。。 先求最短路径,储存路径,然后枚举路径上的边,一个个删,并求当前最短路径,求得的这些最短路径中,最大的就是答案了。 2012-07-27*/#include"stdio.原创 2012-07-26 20:20:50 · 984 阅读 · 0 评论 -
hdu1535
/*分析: 我靠,ac了,泪奔~~~ 为了做这个题,学会了静态邻接表~~~,今儿有接近一半的时间都花到这个题上了,今儿做的题少了点儿,不过,值~~! 用Dij+优先队列过的,578MS。 菜菜有一点儿不懂呀,第一次用的SPFA,竟然连5秒都超了,感觉着SPFA会慢点儿,但不应该慢这么多呀0.0 欢迎讨论,欢迎指点~~~O原创 2012-07-27 16:28:58 · 1018 阅读 · 0 评论 -
hdu2145
/*分析: 呀嘿~,咱竟然排第三耶~ 昨天写这题时犯2了,具体怎么犯就不说了…… 好在今儿一次过了~O(∩_∩)O~ 2012-07-28 09:13*/#include"stdio.h"#include"string.h"#i原创 2012-07-28 09:10:53 · 609 阅读 · 0 评论 -
hdu1595
/*分析: 真不明白,同样的方法,用SPFA写的WA了,用Dij写ac了,还234MS,第三,ac的。。。而且~~~~另外一道几乎一样的题目,用同样的SPFA,也ac了!不管那么多了,ac了,可以泪奔了~ 先求最短路,然后枚举最短路上的边,一个一个的删除、求最短路、安上。。。求得的最大的最短路就是答案。原创 2012-07-28 16:44:30 · 1136 阅读 · 0 评论 -
hdu4396
/*分析: 每条边可重复通过,求至少经过K次边的最短路。 2012-10-14*/#include"stdio.h"#include"string.h"#include"stdlib.h"#include"queue"using namespace std原创 2012-10-14 13:01:48 · 843 阅读 · 0 评论 -
hdu1599
/*分析: 悲催的读错题而WA了昨天一下午,囧~,起点不一定是点1,囧~~~ 第一个是Dij朴素拆边的,400+MS;后一个是floyd求最小环的,100+MS。最后再一次,囧~~~ 2012-10-15*/#include"st原创 2012-10-15 11:37:53 · 610 阅读 · 0 评论 -
hdu2807
/*分析: 简单最短路。 数学是死角,所以暂时不会什么好的方法,暴力水过的,注意A、B、C三点互异。2012-12-18*/#include"stdio.h"#include"string.h"#include"stdlib.h"int n,m;int map[90][90];int E[90][90][90原创 2012-12-18 12:14:32 · 1038 阅读 · 0 评论 -
hdu2833
/*分析: floyd。 显然,两条最短路径里面公共的那部分子路径一定是连续的(如果一定要间断的话,那么说明有更短的路径)。 所以求出点两两之间的最短路,然后枚举每条路径,看是否可以作为公共的那一部分。 2013-03-08*/原创 2013-03-07 18:08:03 · 1303 阅读 · 0 评论 -
hdu2851
/*分析: 一道简单的最短路。 郁闷到死了,刚开始以为在某个road上面走的时候也不能走回头路,结果各种优化都TLE(因为每个区间都最大可以有1001个点,而这些点都可能是某个最短路的中继节点,所以等于说数据量上限*1001。。。)。 最后发现,只要遵循路径中“区间的序号是递增的”就行,至于在某个road上面,回头路爱走不走。。。 优化那的代原创 2013-03-20 16:45:09 · 1083 阅读 · 0 评论 -
hdu4360
/*分析: 最短路小变异。 好久没有敲最短路了,思维都死透了。。。 对每个节点设立4个状态,分别表示“L”“LO”“LOV”“LOVE”,代表前面的路径走过来带上这个点后、组成了什么,然后跑最短路就行了,如果针对某个状态有多条dis相同的路径,那么取LOVE最多的。 另外,1可以往1走,俺系在系想不掉耶,还好从别的blog挖掘出了点儿数据原创 2013-04-10 20:57:30 · 1074 阅读 · 0 评论 -
hdu1162
/*分析; 第一次写kruskal,改了又改。WA了一次,表笑- -,咱就只知道一个大概的想法,只WA一次不错了都。当然,1A的话~O(∩_∩)O哈哈~ 2012-06-19*/#include"stdio.h"#include"ma原创 2012-06-19 22:36:00 · 980 阅读 · 0 评论 -
hdu3371
/*分析: 简单prim,还connected的边将其长度记为0就行了。在k次读入的时候,每次给了t个数,不用进行C(t,2)次赋值让map[a][b]=map[b][a]=0,只用进行t-1次就行了,让这t个数成一个链啊什么的,不用出现回路。原创 2012-06-17 21:23:29 · 1327 阅读 · 0 评论 -
hdu1233
/*分析: 第一次写prim,算半个模板吧。注意不要人为的先把ans=E[0].len,万一读入的边的数量是0呢?血淋淋的WA啊…… 2012-06-17*/#include"stdio.h"#include"stdlib原创 2012-06-17 17:31:23 · 1598 阅读 · 0 评论 -
hdu4009
/*分析: 最小树形图。 这个是按照这个模板敲的:http://www.notonlysuccess.com/index.php/mst/#more-315 2013-04-26*/#include"iostream"#include"cst原创 2013-04-26 18:37:00 · 841 阅读 · 0 评论 -
hdu2121
/*分析: 无定根的最小树形图。 虚拟出一个root,到每个node都有一条边,其权值>整张map中的边的权值和。 至于这个题,当最小树形图的权值相等时,要选择node编号最小的city作为中心这点,代码行45可以得到所需index,因为在找最小的in的时候,我们是按照边的编号从小到大遍历的,且在加入虚拟root到city的边的时候,也是按照city编号的原创 2013-04-26 20:27:16 · 1593 阅读 · 1 评论 -
hdu2682
/*分析: 最小生成树水题,就当又温习了一遍了,囧~ 2012-09-16*/#include"stdio.h"#include"math.h"#include"string.h"#include"stdlib.h"int vi[611];int prime[2000111];stru原创 2012-09-16 18:34:19 · 914 阅读 · 0 评论 -
hdu2819
/*分析: 苍天呐~,ac了- -,1WA囧~,二分匹配的水题。 线性代数里面学的么,如果存在ans,那么只交换行、或只交换列都能抵达ans状态。 所以两个集合,一个是行1(固定不变的行,相当于固定的座位)、另一个是行2(将初始时候的每一个元素行编号为多少多少,相当于同学); 那么,如果编号为y童鞋可以坐在编号为x的行上面,那么就立x到y原创 2013-03-02 14:40:18 · 1125 阅读 · 0 评论 -
hdu2444
/*分析: 二分匹配。 判断一个图是不是二分图,是的话求二分匹配最大匹配数。 主要是怎么判断一个图是不是二分图。不妨选取某个点作为起点并染为某种颜色、同时把与它相邻的元素染为对立的颜色,进行BFS,如果到那步发现当前点和相邻点的颜色一样,那么就出现了矛盾,就不是二分图。原创 2012-12-01 19:36:15 · 1805 阅读 · 0 评论 -
hdu2236
/*分析: 枚举+二分搜索+二分匹配。 当n==1的时候我用了特殊处理,都不等那一个数字读入就直接输出结果,然后就WA了一天,囧~~~ 注意把二分搜索当外循环、枚举当内循环,否则反过来的话有可能超时哦~ 2012-10-29*/原创 2012-10-29 10:23:16 · 693 阅读 · 0 评论 -
hdu2768
/*分析: 与hdu3829同一题。。。 又温习了一遍0.0I 2012-08-03 15:31*/#include"stdio.h"#include"string.h"struct A{ int l,h; int tot; int mem[511];}E[511]原创 2012-08-03 15:28:15 · 700 阅读 · 0 评论 -
hdu1498
/*分析: 又一个0MS,0.0I,真假~ 最小顶点覆盖,只是要多求几次而已。 2012-08-03 14:19*/#include"stdio.h"#include"string.h"struct A{ int tot; int mem[111];}E[55]原创 2012-08-03 14:16:24 · 945 阅读 · 0 评论 -
hdu1054
/*分析: 最小顶点覆盖。 纳闷儿了,开了2222的数组存边,用了1296K,WA了;改成200W的,用了332K,ac了。。。 2012-08-03 08:15*/#include"stdio.h"#include"string.h"st原创 2012-08-03 08:12:15 · 1658 阅读 · 0 评论 -
hdu3829
/*分析: 最大独立集,把小盆友列为两个集合,矛盾是边。 2012-08-02 12:24*/#include"stdio.h"#include"string.h"int chi;struct node{ int love; int heat; i原创 2012-08-02 12:20:46 · 848 阅读 · 0 评论 -
hdu4160
/*分析: 哎呀,在用C提交ac的里面竟然排第一呀,so~吃惊呀~ 最小路径覆盖,如果i可以放到j里面,那么就构建一条i到j的有向边。 2012-07-14*/#include"stdio.h"#include"string.h"s原创 2012-07-14 16:15:41 · 766 阅读 · 0 评论 -
hdu2119
/*分析: 二分匹配学的还是不行,问了学长后才有的思路…… 建立的是行与列的匹配。 2012-07-14*/#include"stdio.h"#include"string.h"struct A{ int total; int me原创 2012-07-14 14:44:17 · 836 阅读 · 0 评论 -
hdu1532
/*分析: 网络流果题~~~ 秉承绝不抄袭、自己debug的原则,经过两个月的努力,终于于今天这个值得纪念的日子里,检查出了那一~个小bug,ac掉了俺第一个网络流。(我是该高兴还是该桑心~-、-III) 泪奔~~~(可以安心吃午饭上体育课去了@。@。。。) 2012-10-09 15:原创 2012-09-24 12:49:10 · 1640 阅读 · 0 评论