
----最短路
sega_handsome
这个作者很懒,什么都没留下…
展开
-
Lazy Running HDU - 6071 最短路+取模
转载自http://blog.youkuaiyun.com/yasola题目大意:给你一个由四个节点组成的环,求从节点2出发,回到节点2的不小于k的最短路。 解题思路:又是一个可能出现无限向下走的题目。面对这种问题有一个比较常见的处理方法就是利用同余。题目要求的是回路,回路有这样一个性质,任意两个回路可以连接构成一个新的回路。于是任意一个回路就可以表示成x+n*y的形式,其中x和y是两个回路。现在再回到利用同余转载 2017-08-18 16:11:27 · 376 阅读 · 0 评论 -
POJ 3492 Knapsack II (最短路)
参考:http://blog.youkuaiyun.com/rlt1296/article/details/52573608Description Lambert wants to carry several kinds of items with a knapsack. Items of each kind have integral size and infinite supply. The knapsa转载 2017-11-02 08:11:10 · 250 阅读 · 0 评论 -
Buggy Robot Gym - 101201B 最短路..
参考:https://vjudge.net/solution/10899875居然看起来那么简单..? 分析的话:因为状态数是50*50*50 (地图的大小* 指令最多的长度) 所以其实时间复杂度是不高的.. 但是感觉真的难想看来是题目做的太少嘞..转载 2017-10-02 22:12:33 · 417 阅读 · 0 评论 -
spfa 的优化
SPFA 与堆优化的 Dijkstra 的速度之争不是一天两天了,不过从这次 USACO 月赛题来看,SPFA 用在分层图上会比较慢。标程是堆优化的 Dijkstra,我写了一个非常朴素的 SPFA,只能过 6/11 个点。SPFA 是按照 FIFO 的原则更新距离的,没有考虑到距离标号的作用。实现中 SPFA 有两个非常著名的优化:SLF 和 LLL。 SLF:Small Label First转载 2017-08-27 20:46:46 · 591 阅读 · 0 评论 -
HDU 6201 transaction transaction transaction (2017沈阳网络赛 - spfa最长路)
没想到可以用spfa 这个加源点和汇点的方式很关键。。。 #include<bits/stdc++.h> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define sf scanf #define pf printf #define mem(a,b) memset(a,b,sizeo转载 2017-09-13 07:45:32 · 193 阅读 · 0 评论 -
Codeforces Round #374 (Div. 2) C. Journey DPor最短路
题意给你一个n点m边的图,让你从1走到n,找到一条经过尽量多点的路径,且路径边权和小于等于T然后输出路径。分析:自己原本打算5000*5000×vector 果断爆了。。 然后用最短路的方式,dp【Node】里面记录cost和num,又在case35TLE。 看了别人,还是要好好学学记录路径的方法。。。 2. 别人的代码。。400ms 最短路spfa(一敲)220600 KB (所以其实原创 2017-09-10 10:29:04 · 258 阅读 · 0 评论 -
Senior Pan HDU - 6166 最短路+思维
题目链接https://vjudge.net/problem/HDU-6166参考http://blog.youkuaiyun.com/qq_33362864/article/details/77494173题意:给一个有向图,n个点,m条边。给k个其中的点,求这k个点相互之间的路径值的最小值是多少。这道题最难想到的是对这k个点进行划分,这里方法是这样的:将这k个点用二进制来划分。首先两个不相同的数,其二进制一原创 2017-08-23 22:07:19 · 944 阅读 · 0 评论 -
It's not a Bug, it's a Feature! UVA - 658
题意:补丁在修补bug时,有时候会引入新的bug。假定有n(n<=20)个潜在bug和m(m<=100)个补丁,每个补丁用两个长度为n的字符串表示,其中字符串的每个位置表示一个bug。第一个串表示打补丁前的状态(“-”表示该bug必须不存在,“+”表示必须存在,“0”表示无所谓),第二个串表示打补丁后的状态(“-”表示不存在,“+”表示存在,“0”表示不变)。每个补丁都有一个执行时间,你的任务是用最原创 2017-08-27 20:48:18 · 259 阅读 · 0 评论 -
Two Paths HDU - 6181 次短路
明明是裸的水题。。可是没法一下子做出来。。因为在d2和d1的地方的细节卡了。。 还有看别人的代码。void spfa( ){ queue<int>q; q.push(1);dist[1][0]=0; while(!q.empty()){ int u=q.front();q.pop(); inq[u]=0; for(int i=原创 2017-08-26 14:58:11 · 219 阅读 · 0 评论