------图论------
文章平均质量分 66
Drenight
Dream in the night.
展开
-
POJ2387
好好一道Dijkstra模板题,瞎敲了一种方法 复杂度O(nlogn),排序*点数 原本一直wa,经大佬点播要多次排序 深夜扭出一组数据,发现不排序会错:节点2未连接 5 10 1 10 4 2 4 8 4 6 2 6 2 1 4 10 3 以后还是用模板的写法吧。。大佬说图论不要瞎敲 思路如下:2层循环,i指过的地方表示最短路已建立,j以i为中继点向后移动进行松弛 这原创 2017-01-17 00:36:13 · 245 阅读 · 0 评论 -
BZOJ3245: 最快路线 拆点dijkstra
150个点,500种速度,乘起来大概8e4个点,3e4的边 其他题解写的基本都是spfa,想想dij也能做,还挺快 #include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include原创 2018-01-17 16:39:55 · 302 阅读 · 0 评论 -
BZOJ2330 [SCOI2011]糖果 差分约束模板
很久以前学的差分约束,基本忘了,复习一下 a a>=b+c,ins(b,a,c)是最长链,每个元素最小 #include #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #include #includ原创 2017-12-02 08:43:59 · 335 阅读 · 0 评论 -
BZOJ1614 [Usaco2007 Jan]Telephone Lines架设电话线 二分/魔性剪枝/最小边长连通
拿到手感觉是二分。。就瞎搞了搞,用并查集维护连通关系,bfs搜了搜,加了一大堆魔性剪枝,调了一年就过了 正解是二分之后最短路。。超mxlen的长1不超为0。。我是正解的两倍慢&&两倍长←_← #include #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include原创 2017-12-02 01:21:32 · 259 阅读 · 0 评论 -
BZOJ1040 [ZJOI2008]骑士 环套树/dp
借题区别了一下环套树和仙人掌 常见做法是拆环, 可双边+环的设定使得邻接表拆边做题体验极差。。4条边或者2条边难以区分,难以表现出边的封堵。。 挣扎改了好久最后还是向链式前向星低头。。 //#include #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #includ原创 2017-12-01 22:05:15 · 209 阅读 · 0 评论 -
894D - Ralph And His Tour in Binary Country 完全二叉树点对计数
打完模拟被xz忽悠去码,粗略听了一波题解之后开始搞 总体感觉自己码力确实有进步了。。起码遇到啥问题了会找地方改,改啥肯定能出想要的效果。。 好像别人的代码都很短啊?我感觉自己这版写的逻辑挺清楚的。。就是长了点。。 一点一点实现自己脑内搭建的逻辑还是挺愉快的。。 //#include //#pragma comment(linker, "/STACK:1024000000,10240原创 2017-11-22 03:28:28 · 232 阅读 · 0 评论 -
SPOJ - HIGH 生成树计数/矩阵树定理/无取模行列式
矩阵树定理大概是说一张图的基尔霍夫矩阵由度数矩阵减去邻接矩阵得到, 使用这张图的边的生成树个数就等于基尔霍夫矩阵的det 存个求行列式的模板吧 //#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #includ原创 2017-10-05 15:32:49 · 362 阅读 · 5 评论 -
Meeting HDU - 5521 最短路/虚拟点建图
给许多个组,每个组内点可以花相同时间互相抵达, 可以通过加虚拟点,入边t,出边0来完成建图 其他就是比较恶心的输出以及一个微妙的特判了,具体可以看代码最后的部分, debug良久猜了一个n=2的hack,加上这个就pe了,难以描述 //#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #inclu原创 2017-10-10 01:33:51 · 293 阅读 · 0 评论 -
BZOJ2118: 墨墨的等式 思维建图
问a1x1+a2x2+a3x3+……+anxn∈[Bmin,Bmax]中的非负整数解有多少组 由于是非负所以不能简单求gcd,可以考虑任取其中某一项ax, 以它的模域0-ax-1建图,单向通过a数组转移,这样跑出从模0到模任意数的最短路 最短是为了保证在BminBmax里能塞进最多的ax 显然ax取最小可以让复杂度最好,实测取max是min耗时2倍 正确性就是如果m可以取到,那么k*ax原创 2017-10-01 15:08:00 · 298 阅读 · 0 评论 -
Havel_Hakimi定理模板 可图化判断
度数序列转图的判断算法,利用贪心的思想 #include #include #include #include #include #include #include using namespace std; #define ll long long const int maxn=1e6+7; const int inf=0x3f3f3f3f; #define FOR(n) for(int i=1原创 2017-09-14 18:52:10 · 237 阅读 · 0 评论 -
Prufer数列编码生成树
数列中节点出现次数=节点度数-1原创 2017-04-22 21:43:32 · 765 阅读 · 0 评论 -
POJ3255次短路模板
模板级次短路问题 与最短路的区别在于,优先队列保存的对象不同, 队列中同时储存了 1:到某个点u的最短路+u到v的边 2:到某个点u的次短路+u到v的边 用这两种情况刷新最短路和次短路,所以temp=x.d+edge[i].dist #include #include #include #include #include #include #define maxn 50100 #def原创 2017-01-23 22:53:11 · 340 阅读 · 0 评论 -
Tree 倍增
每个节点有重量,询问节点的祖先序列中最长重量递增序列长度赛中写的倍增没调出来,感觉这种从指数最大到最小枚举做倍增的方法也不错比之前那个从每次都从低位开始凑的更快//#include<bits/stdc++.h> //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<stdio.h> ...原创 2018-02-16 02:31:00 · 191 阅读 · 0 评论