算法学习
蓝宇
这个作者很懒,什么都没留下…
展开
-
poj 3615(Cow Hurdles) floy 算法
Cow HurdlesTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 4082 Accepted: 1760DescriptionF原创 2011-09-20 22:40:22 · 471 阅读 · 0 评论 -
BFS_poj 2251 Dungeon Master
题目大意: 给出一三维空间的地牢,要求求出由字符'S'到字符'E'的最短路径移动方向可以是上,下,左,右,前,后,六个方向每移动一次就耗费一分钟,要求输出最快的走出时间。不同L层的地图,相同RC坐标处是连通的/*Sample Input3 4 5S.....###..##..###.#############.####...###########原创 2012-04-03 00:16:52 · 291 阅读 · 0 评论 -
差分约束系统_bellman_ford_poj 1201 Intervals
题目大意是:告诉你一个数列B在另一个数列A中每一个闭区间[a,b]中至少包含c个数,求B数列的最小长度。 模型转换一下,使用二进制0、1表示当前数取还是不取,此问题即成为典型的查分约束系统。 令S[i]表示0..i中1的个数,第i位状态即 S[i]-S[i-1] ,满足 0 ≤ S[i]-S[i-1] ≤ 1. 对于每一个条件(a,b,c),满足 c ≤ S[b]-S[a-1]原创 2012-04-01 19:45:38 · 323 阅读 · 0 评论 -
DP_bnu 13565 Flags
题意:由红白蓝按照规则形成的旗帜的种类数WA点:注意longl long 则f[i] = f[i-1] + f[i -2] ,因为,在f[i-1]后面加一种颜色(红或白)或者在f[i-2]中加上包括蓝的两种颜色即可形成f[i]; #include long long color[46];int main (){ int n; color[1] = 2;原创 2012-04-03 00:40:27 · 299 阅读 · 0 评论 -
Bellman_Ford poj 1860
题意:求根据各种货币之间的汇率能否使某种货币升值。货币a兑换成b所得值是 (a-c[a][b])*r[a][b]。 思路:令dist[a]表示从s(最初所持货币)出发经过各种已知的汇率兑换成a所能得到的最大值。那么便可以发现一个明显的放缩条件:(dist[a]-c[a][b])*r[a][b]>dist[b]。如此便可以用bellman水了。另外需要注意的是不仅是存在正权回路的时候原创 2012-03-22 13:58:18 · 265 阅读 · 0 评论 -
spfa poj 3259
题意:一个图,有一些“正常”的点和边(废话),点表示农场的位置、边表示从一个农场到另一个农场花费的时间。打住。还有些特别的点(虫洞),这些特别的点和其他点的边代表着能“穿越”的时间。问:有没有可能从虫洞穿越到某个点,时间倒流。这个模型就是把正常的点互相连接起来或者把正常的点到虫洞,权是正。但是虫洞到其他的点,权为负。建立一个存在负权的图,然后最最最最关键的就是:判断是否存在负权回路。单原创 2012-03-22 14:36:37 · 323 阅读 · 0 评论 -
Bellman_Ford POJ3259
题意:一个图,有一些“正常”的点和边(废话),点表示农场的位置、边表示从一个农场到另一个农场花费的时间。打住。还有些特别的点(虫洞),这些特别的点和其他点的边代表着能“穿越”的时间。问:有没有可能从虫洞穿越到某个点,时间倒流。这个模型就是把正常的点互相连接起来或者把正常的点到虫洞,权是正。但是虫洞到其他的点,权为负。建立一个存在负权的图,然后最最最最关键的就是:判断是否存在负权回路。单源最原创 2012-03-16 13:57:44 · 417 阅读 · 0 评论 -
LCS_poj1458 Common Subsequence_空间复杂度O(n)
求最长公共子序列,题意就不再解释了,裸地、、、、、、、、、、#include #include #include #include #include #include #include #include #include using namespace std;int s[250], t[250];int LCS(string s1, string s2){原创 2012-04-20 13:21:54 · 554 阅读 · 0 评论 -
DP_poj3022_The Uxuhul Voting System
Sample Input248 7 6 5 4 3 2 18 6 3 1 2 4 5 78 3 6 5 1 2 7 41 2 3 4 5 6 7 811 2 3 4 5 6 7 8Sample OutputNYYNNY#include #include using namespace std;int arr[105][8];char ch[8][4原创 2012-04-20 16:21:29 · 931 阅读 · 0 评论 -
kruskal_poj 3522 Slim Span
题意为求一棵生成树,其最大边权-最小边权最小先枚举生成树中的最小边,再用kruscal求最小生成树http://poj.org/problem?id=3522#include #include #include #include #include #include #include #include #include #include #include #incl原创 2012-03-31 18:54:59 · 310 阅读 · 0 评论 -
kruskal_poj 2485 Highways
此题关键要理解输出的定义For each test case, you should output a line contains an integer, which is the length of the longest road to be built such that all the villages are connected, and this value is minimu原创 2012-03-31 00:29:21 · 323 阅读 · 0 评论 -
poj 1125(Stockbroker Grapevine)Dijkstra算法
Stockbroker GrapevineTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 17918 Accepted: 9671Descrip原创 2011-09-21 13:29:18 · 451 阅读 · 0 评论 -
poj 1847(Tram) Dijkstra
TramTime Limit: 1000MS Memory Limit: 30000KTotal Submissions: 6000 Accepted: 2193DescriptionTram network原创 2011-09-21 22:13:31 · 488 阅读 · 0 评论 -
Prim_poj2075 Tangled in Cables
题意:最小生成树问题,加上简单的字符串处理/*Sample Input100.04JonesSmithsHowardsWangs5Jones Smiths 2.0Jones Howards 4.2Jones Wangs 6.7Howards Wangs 4.0Smiths Wangs 10.0Sample OutputNeed 10.2 miles of ca原创 2012-03-26 21:33:26 · 336 阅读 · 0 评论 -
Prim_poj 1287 Networking
题意:给出一个具有n个顶点和m条边的图,求其最小生成树。#include#include#include#define MAXVN 55#define INF 10000000using namespace std;typedef struct{ int u,v,value;}Edge;typedef vector VE;VE eg[MAXVN];vecto原创 2012-03-26 14:59:02 · 318 阅读 · 0 评论 -
PRIM_poj 2349Arctic Network
题意:有两种不合的通信技巧,有卫星通信的两个城市之间可以随便率性联络,但用无线电通信的城市只能和间隔不跨越D的城市接洽。无线电的才能越高(即传输间隔D越大),花费就越大。已知无线电的数量m,让求最小的D。之前自己写的prim算法是O(n^3)的,当写到这道题TLE过后,我才发觉我的算法写的很挫,本来PRIM应该是O(n^2)的,所以又重写写了一下,把这题给A了#include#inclu原创 2012-03-26 20:35:27 · 277 阅读 · 0 评论 -
Prime_poj2031 Building a Space Station
题目意思很简单,就是给出一些点,让你搭建通路,使得他们能够相互连通起来,就是把他们连接成一颗树,其中每个点都是一个球,如果两个球有重叠的部分则算为连通。让我们求搭建通路的最小费用(费用和通路长度成正比)。显然这个是个最小生成树的问题,用那种都行,我用的是Prim算法/*Sample Input310.000 10.000 50.000 10.00040.000原创 2012-03-26 14:49:11 · 338 阅读 · 0 评论 -
prime_poj 1287O(n^2) 邻接表实现
#include#include#include#define MAXN 60#define INF 1000000000using namespace std;typedef struct{ int v, value;}Edge;typedef vector VE;VE eg[MAXN];bool visited[MAXN];int LowValue[MAX原创 2012-03-26 23:14:35 · 410 阅读 · 0 评论 -
kruskal_poj 1251Jungle Roads
poj1251http://poj.org/problem?id=1251此题一看就知是最小生成树,由于数据量很小,输入的数据形式也没有那一种比较方便,所以prim和kruskal都可以下面给出kruskal代码 #include#include#include#include#include#define MAXEN 200#define MAXVN 60原创 2012-03-31 01:06:29 · 361 阅读 · 0 评论 -
DP_poj1887_Testing the CATCHER
题意: 输入一组数据,求最大不连续降序数值个数。 输入: 每组数据以-1结束,连续两个-1则程序结束。 输出: 输出测试数据组数及求出的最大值。#include #include #include #include #include #include #include #include using namespace std;原创 2012-04-19 19:37:22 · 445 阅读 · 0 评论