
最短路
Park Corsa
吃早餐,多运动,不熬夜,常反思
展开
-
洛谷P1462 通往奥格瑞玛的道路
出题人又双叒叕考察OIer的语文水平底线读懂题面之后会发现答案明显具有单调性,于是想到二分答案每次二分可能的最多的一次收取的费用的最小值,代入图中去验证是否能在满血或者残血的情况下抵达奥格瑞玛因为fi值可能很大,所以用离散化进行了优化料想不少神仙都写的是SPFA或Dijkstra,我就另辟蹊径写了一发DFS,本质上没有什么区别,不过喜欢写深搜的同学可以看看#include<bits/stdc++.h>using namespace std;inline char nc(){原创 2021-08-12 11:16:19 · 121 阅读 · 0 评论 -
[FROM LUOGU]逛公园
传送门SOL这道题的记忆化搜索、最短路DP有很多被卡了的,原因在于没有考虑0边不在路径上的情况,或者按照0边建图跑拓扑导致非0环上的点被误伤这个分层图(其实还是DP)的做法没有被卡:跑拓扑我们在最短路边集(所有dis<=K的路径上的边)上进行(当然你得先跑正反图的最短路)那么显然非0环至少有一条边不会被加进去,而0环会,这也就是导致−1-1−1的原因,所以跑完拓扑判断一下有没有入...原创 2019-10-28 16:40:19 · 132 阅读 · 0 评论 -
[FROM LUOGU]P1772 [ZJOI2006]物流运输
P1772 [ZJOI2006]物流运输传送门SOL由于数据规模很小,可以进行一波乱搞显然我们不需要把所有情况下的最短路跑一遍,那样要跑O(N2)O(N^2)O(N2)次,会TLE(除非有什么xjb剪枝)显然这里有一个DP,设f[i]f[i]f[i]表示前iii天的最小成本,那么我们可以得到一个转移:f[i]=min(f[j−1]+(i−j+1)∗dis[m]+K)f[i]=min(f...原创 2019-10-23 21:39:17 · 204 阅读 · 0 评论 -
[FROM BZOJ][Pa2011]Journeys
[Pa2011]Journeys传送门SOL区间加边?听起来很难的样子,但是如果利用线段树的思想,就会非常好办事实上,每个区间都可以作为一个点来处理然后一个区间向其子区间连边修改直接对着区间修改即可然后就可以用权值线段树乱搞啦注意要动态开点代码:#include<bits/stdc++.h>#define ll long long#define re regis...原创 2019-10-20 23:34:00 · 207 阅读 · 0 评论 -
[FROM LUOGU]墨墨的等式
墨墨的等式传送门SOL注意到:B<=1e12,而ai<=5e5,那么如果除掉一个ai也许能过发现:a1x1+a2x2+…+anxn=B->x1+a2/a1x2+…+an/a1xn=B/a1假设:B%mod a1=w(a1为升序sort后的值)则所有w+a1k(k为正整数)都可以由w转到,则考虑0到a1-1共a1个点跑最短路,每次可以跑一条ai权值的边则跑出来的d...原创 2019-10-20 23:21:57 · 171 阅读 · 0 评论 -
[FROM WOJ]#2379 奶牛接力
#2379 奶牛接力传送门SOL倍增Floyd的板题设f[i][j][k]f[i][j][k]f[i][j][k]表示从iii走到jjj经过kkk条边的最短路然后就有很显然的dpdpdp式子:f[i][j][k]=min(f[i][t][s]+f[i][t][k−s])f[i][j][k]=min(f[i][t][s]+f[i][t][k-s])f[i][j][k]=min(f[i][t...原创 2019-10-19 20:57:20 · 171 阅读 · 0 评论 -
[FROM WOJ]#3841 双调路径
#3841 双调路径题面如今的道路收费发展很快。道路的密度越来越大,因此选择最佳路径是很现实的问题。城市的道路是双向的,每条道路有固定的旅行时间以及需要支付的费用。路径是连续经过的道路组成的。总时间是各条道路旅行时间的和,总费用是各条道路所支付费用的总和。一条路径越快,或者费用越低,该路径就越好。严格地说,如果一条路径比别的路径更快,而且不需要支付更多费用,它就比较好。反过来也如此理解。如果...原创 2019-06-15 13:36:35 · 657 阅读 · 0 评论