随笔分类 -  图论

摘要:poj3463大意:统计最小的长度个数+统计最小的长度+1的个数,大概就是求最短路和次短路的条数更新的时候有5种情况,有个细节就是它得是二维的,一个表示节点编号,一个0/1表示它是次短路的还是最短路的,把结构体扔到队列里。需要更新的就是4种情况。w<最小值w=最小值w<次小值w=次小值 阅读全文
posted @ 2019-07-21 22:42 WeiAR 阅读(123) 评论(0) 推荐(0) 编辑
摘要:Gym 100712Hhttps://vjudge.net/problem/195715/origin先缩点,再建立新图,然后跑两遍dfs求树上最长路 #include<iostream> #include<cstdio> #include<queue> #include<algorithm> #i 阅读全文
posted @ 2019-07-20 13:28 WeiAR 阅读(238) 评论(0) 推荐(0) 编辑
摘要:CodeForces - 1087Dhttps://vjudge.net/problem/2115151/origin2*和/叶子结点的个数 阅读全文
posted @ 2019-07-19 19:22 WeiAR 阅读(138) 评论(0) 推荐(0) 编辑
摘要:poj2135根本想不到系列求1到n,和n到1的最短路,但是不能重复走。超级源点连到1,流量为2,费用为0;n连到超级汇点,流量为2,费用为0。其他的流量为1,费用为边的长度。(图中为双向边 阅读全文
posted @ 2019-07-19 10:17 WeiAR 阅读(197) 评论(0) 推荐(0) 编辑
摘要:poj3281根本想不到了网络流题,把牛拆点,如图方式建图,然后跑网络流 阅读全文
posted @ 2019-07-18 16:06 WeiAR 阅读(279) 评论(0) 推荐(0) 编辑
摘要:E - Elevatorhttp://codeforces.com/gym/241680/problem/E同余最短路,从0~a-1中每一个i向(i+b)%a连一条权值为b的边,向(i+c)%a连一条权值为c的边,然后跑spfa最短路,此时d[i]表示达到x%a花费的最小的距离,这里放的只有b,c, 阅读全文
posted @ 2019-04-05 14:39 WeiAR 阅读(255) 评论(0) 推荐(0) 编辑
摘要:zoj3781赛场上堵在了缩点上emmmmm把原始图相同颜色的方块缩成一个点,然后与它周围不同颜色的联通块连双向边,然后枚举每个点然后求最大深度的最小值因为每次翻转都相当于深度+1(可以手动模拟一下 #include<iostream> #include<cstdio> #include<queue 阅读全文
posted @ 2019-03-18 17:05 WeiAR 阅读(287) 评论(0) 推荐(0) 编辑
摘要:分层图最短路问题啥是分层图,我两天才理解了一点,大概就是一层一层的,就像大楼一样,而且你现在就在楼顶,只能下楼不能上楼。它与分层图最短路问题相关说白了就是普通的最短路问题+可以免费走k次建图的时候每建一条边就往下一层的对应点上连一条边权为0的边然后正常跑最短路 这种题一般是稠密图,如果没负权边直接上 阅读全文
posted @ 2019-02-14 17:23 WeiAR 阅读(190) 评论(0) 推荐(0) 编辑
摘要:洛谷负环板子题 差点没笑死我 之前的题解都在清一色diss bfs,吹爆dfs 如今改了数据bfs又崛起了,dfs回家种地了,哈哈哈哈哈 dfs版 1 // luogu-judger-enable-o2 2 #include<iostream> 3 #include<cstdio> 4 #inclu 阅读全文
posted @ 2019-02-13 11:41 WeiAR 阅读(150) 评论(0) 推荐(0) 编辑
摘要:P2502 [HAOI2006]旅行有些问题光靠直觉是不靠谱的,必须有简单的证明,要么就考虑到所有情况。这个题我想的是要么见最小生成树,要么建最大生成树,哎,我sb了一种很简单的情况就能卡掉在最小生成树中,Min为a,它有重边,b比a大,而且b依然是Min,那么此时答案就会更优。正解就是枚举每一个边 阅读全文
posted @ 2019-01-30 08:29 WeiAR 阅读(300) 评论(0) 推荐(0) 编辑
摘要:洛谷1550 打井找一个数组来存以x为根的树的最小值,所有边按从小到大排序,如果e[i].v<=Min[t1]||....(见代码 1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 #include<algorithm> 5 #i 阅读全文
posted @ 2019-01-26 20:57 WeiAR 阅读(157) 评论(0) 推荐(0) 编辑
摘要:codevs1183 泥泞的道路分数规划+二分答案(小数)一般是把移项之后的进行从大到小排序,但在这里要跑最长路,这和排序的道理是一样的,不过要同时满足最大和联通两个条件 求最长路的时候不要忘记判正环23333333 1 #include<iostream> 2 #include<cstdio> 3 阅读全文
posted @ 2019-01-26 11:44 WeiAR 阅读(226) 评论(0) 推荐(0) 编辑
摘要:luogu p1119 灾后重建少用memset(),不然吃亏在后边。在floyd在如果有些点不能走,等价于它们不能作中转点,这样就满足了时效性,也就满足了在变化的图中求任意两点的最短路 1 #include<iostream> 2 #include<cstdio> 3 #include<queue 阅读全文
posted @ 2019-01-26 10:32 WeiAR 阅读(103) 评论(0) 推荐(0) 编辑
摘要:P1938 [USACO09NOV]找工就业Job Hunt给边赋予价值,入边的权值为D-Ti,然后从起点开始跑最长路,如果钱的总数超过了D*C,也就是一定有一个城市走了两遍,则有正环,则输出-1 1 #include<iostream> 2 #include<cstdio> 3 #include< 阅读全文
posted @ 2019-01-24 17:14 WeiAR 阅读(185) 评论(0) 推荐(0) 编辑
摘要:因为spfa没事就被卡一卡,所以堆优化dijstra就显得很重要,在最短路或者其模型里边,最少有一条边是没有被更新过的,也就是它是最短的,同理从这个点开始也有一条边最短,所以每次就找最短的然后松弛操作就可以的。 1 #include<iostream> 2 #include<cstdio> 3 #i 阅读全文
posted @ 2019-01-23 11:08 WeiAR 阅读(261) 评论(0) 推荐(0) 编辑
摘要:P3258 [JLOI2014]松鼠的新家倍增lca+树上差分,从叶子节点向根节点求前缀和,dfs求子树和即可,最后,把每次的起点和终点都。 阅读全文
posted @ 2017-11-08 11:33 WeiAR 阅读(139) 评论(0) 推荐(0) 编辑
摘要:P2661 信息传递dfs求最小环,要加时间戳,记录这个点是哪一次被dfs到的。] 阅读全文
posted @ 2017-11-06 07:49 WeiAR 阅读(273) 评论(0) 推荐(0) 编辑
摘要:封锁阳光大学二分图染色问题,整个图的染色情况实际上(等价于)只有一种,所以从黑色和白色中取最小的就可以了,因为图不联通,所以取最小的就可以了。 阅读全文
posted @ 2017-11-04 14:29 WeiAR 阅读(132) 评论(0) 推荐(0) 编辑
摘要:P2279 [HNOI2003]消防局的设立考场上想出了贪心策略,但是处理细节时有点问题,gg了。从(当前深度最大的节点)叶子节点往上跳k个,在这里设消防局,并从消防局遍历k个距离,标记上。 阅读全文
posted @ 2017-11-01 18:40 WeiAR 阅读(299) 评论(0) 推荐(0) 编辑
摘要:P2648 赚钱对于不知道起点在哪里的最短路,先建立一个超级源点,然后从超级源点跑最长路,并判正环即可。 阅读全文
posted @ 2017-10-27 21:34 WeiAR 阅读(207) 评论(0) 推荐(0) 编辑