随笔分类 -  POJ

poj-1459 Power Network **
摘要:1 //[转] : http://blog.csdn.net/moon_1st/article/details/5365886 2 //网络流中求最大流几乎最快的算法——最高标号预流推进算法(HLPP) //不过这里不含GAP优化,GAP优化见本blog《浅谈网络流的基本算法[转]》 (注: 没有gap优化似乎HLPP很渣啊~ ) 3 //思路很直接,略 4 //代码很清晰, 注释略 5 6 7 #include <iostream> 8 #define Max 65535 9 using namespace std; 10 11 int s,t,n,np,nc,m... 阅读全文

posted @ 2012-05-15 17:20 龙豆 阅读(743) 评论(1) 推荐(1) 编辑

poj-3255 Roadblocks ***
摘要:1 /* 2 *解题报告 3 [转: http://hi.baidu.com/lewutian/blog/item/7986c62c4aa412e18a1399bb.html ] 4 本人在POJ上做过次小生成树的问题。当时的解决思路是把最小生成树里面的边逐个去掉, 5 而计算现在的最小生成树。证明很简单,在此略去。 6 7 可是现在解决次短路问题也采用这样的思路就会非常麻烦。SPFA一次的时间复杂度 8 大约是O(2n),枚举最短路的边是O(r)级别的,这样看来最坏情况下的 9 时间复杂度就会有O(2nr),将近10亿。 10 就算是O(r)太过悲观的话,想在2秒内... 阅读全文

posted @ 2012-03-29 16:27 龙豆 阅读(540) 评论(0) 推荐(0) 编辑

poj-2411 Mondriaan's Dream ***
摘要:1 /* 状态压缩DP , 类似炮兵阵地(POJ1185,本blog有。。) 2 * 3 * 自己写的,判断是否合法写的很长。。。 4 * 5 * 贴个"解题报告"吧。。 6 * 7 Assume you could calculate the number of different paintings 8 for a rectangle with c columns and r rows where the first r-1 9 rows are completely filled and the last row has any of 2c ... 阅读全文

posted @ 2012-03-26 14:38 龙豆 阅读(508) 评论(0) 推荐(0) 编辑

poj-1179 Polygon **
摘要:1 /* 2 * 枚举第一次断开的边,然后DP, 3 * 4 * DP还是很简单的, 类似矩阵连乘 5 * 需要注意的是:由于负负得正,所以你不能只算最大值. 6 * 也就是说要计算多边形上连续的一段所能达到的最小值和最大值. 7 * 8 * 难的是断开第k条边后如何给剩下的边重新编号 9 * 10 * 这里建立了一个映射,如断开第k条边, 11 * 则原来的第k+1条边编号为0,原来的第k-1条边编号为n-2. 12 * 13 * getNum(i, k)函数用于计算断开第k条边后新编号为i的边的原编号 14 * 15 * 16 * 17 ... 阅读全文

posted @ 2012-03-25 21:00 龙豆 阅读(394) 评论(0) 推荐(0) 编辑

POJ测试数据 [转]
摘要:1、USACO2006年November题目和测试数据的网址http://ace.delos.com/NOV062007年open赛题目和测试数据的网址http://ace.delos.com/OPEN07以此类推2、日本ACM比赛http://www.acm-japan.org/http://icpc2010.honiden.nii.ac.jp/en/past-contests3、官方网站02年网址http://icpc.baylor.edu/past/icpc2002/regionals/report.html03年以后改2002到2003即可。部分有测试数据4、德国的http://www 阅读全文

posted @ 2012-03-18 18:20 龙豆 阅读(4680) 评论(0) 推荐(1) 编辑

poj-1167 The Buses ****
摘要:1 /* 2 * DFS 3 * 两种搜索策略, 详见 lrj《算法艺术与信息学竞赛》P183 4 * 以下有两种策略的实现 5 * 6 * 7 * 策略一: 基于“线路”:(详见注释) 8 * 另外可见 http://blog.sina.com.cn/s/blog_68629c770100wpit.html 9 * 10 * 策略二: 基于“车辆”: 11 * [分析](转自 http://acm.sdibt.edu.cn/blog/?p=66) 12 * 此题是明显的搜索题,且... 阅读全文

posted @ 2012-03-18 11:50 龙豆 阅读(666) 评论(0) 推荐(0) 编辑

POJ-1818 ATP ****
摘要:1 /* 2 * 贪心 + 二分 3 * 看了网上的代码 + discuss 才想出解法。。。 4 * 5 * 设答案是排名为p的人 6 * 则贪心策略是: p最后一轮与(p-k)比赛。 7 * 这个还是有点显然的,因为所有与p比赛且能被p赢的人中, 8 * (p-k)是最容易撑到最后一轮的。 9 * 证明: 否则,设p最后一轮与m比赛,(则m > p-k),(p-k)在某一轮与a比赛时被打败, 同时这一轮m是与b比赛且m胜利(因为m撑到了最后一轮)。则我们交换这一轮中的(p-k)和m, ... 阅读全文

posted @ 2012-03-13 20:42 龙豆 阅读(786) 评论(0) 推荐(1) 编辑

POJ分类 [转]
摘要:多版本pku题目分类,比较全,大家可以在这上面找题 POJ各题算法 1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5-7 1003 Hangover 送分题 62% 2005-5-7 1004 Financial Management 送分题 61% 2005-5-7 1005 I Think I Need a Houseboat 几何 68% 2005-5-7 1006 Biorhy... 阅读全文

posted @ 2012-03-13 18:59 龙豆 阅读(3564) 评论(0) 推荐(0) 编辑

poj-1752 Advertisement **
摘要:1 /* 2 * 很自然的 差分约束系统, 没具体写, 转一个。。 3 * 4 * 5 * http://www.cnblogs.com/ihainan/archive/2011/07/23/2114884.html 6 * 解题思路:由题可得如下约束条件: 7 * 如果 b - a >= k 8 * 则 S[b] - S[a] >= k 9 * 否则 S[b] - S[a] >= dis(a, b) 10 * 且 S[b] - S[a] <= dis(a, b) 11 * 同时 0 <= S[i] ... 阅读全文

posted @ 2012-03-11 20:25 龙豆 阅读(579) 评论(0) 推荐(0) 编辑

poj-2054 Color a Tree ****
摘要:1 /* 2 * POJ-2054 color a tree 3 * 4 * 贪心 难题! 5 * 6 * 思路1: 7 * http://hi.baidu.com/cheezer94/blog/item/d98eca065202a2f237d122da.html 8 * 思路2: 9 * http://www.cnblogs.com/X-Kly/archive/2011/11/02/POJ2054.html 10 * 代码: 11 * http://xinbaolianmeng.com/showshouye.a... 阅读全文

posted @ 2012-03-11 19:43 龙豆 阅读(819) 评论(0) 推荐(0) 编辑

poj-1737 Connected Graph[转] ***
摘要:1 /* 2 3 [转]http://hi.baidu.com/accplaystation/blog/item/51417bdca982bea4cc116660.html 4 5 这道题据说有两种思路: 6 7 1——将总的方案数减掉所有不连通的方案。 8 9 总的方案数是2^(C(n,2)),不连通的方案数可以如下考虑:10 11 当和点1连通的点数共有k个时,方案数为C(n-1,k)*F(k+1),其他n-k-1各点间任意连边即可, 方案数为2^(C(n-k-1,2)),所以这样的方案数共有C(n-1,k)*F(k+1)* 2^(C(n-k-1,2))种。12 13 因此可以... 阅读全文

posted @ 2012-03-05 21:34 龙豆 阅读(1028) 评论(0) 推荐(0) 编辑

poj-2430 Lazy Cows ****
摘要:1 //参见 http://hi.baidu.com/billdu/blog/item/6315841769e6905ff3de325e.html (有图有真相...) 2 //... 3 // 4 //dp[i][j][k]表示到达第i列,已经建设好了j个围栏,最后一列状态是k的情况下框住的最小面积 5 // 6 //另外, 我这个代码是 顺推(按黑书的分类),也就是基于当前状态,遍历之前的能得到这个当前状态的状态,取最佳值 7 //而参考的那个是 逆推, 也就是基于当前状态,计算能由这个“当前状态”推出的“下一状态”,如果这样推能使“下一状态”的值更佳 8 //则更新“下... 阅读全文

posted @ 2012-03-02 16:11 龙豆 阅读(734) 评论(0) 推荐(0) 编辑

poj-1064 Cable master **
摘要:1 /* 2 * poj-1064 Cable master.cpp 3 * 4 * Created on: 2012-2-26 5 * Author: LongDou 6 * 7 * 8 * 二分, 化为整数存储,下界为1(cm),上界为最长绳的长度 9 *10 */11 #include<cstdio>12 using namespace std;13 14 const double eps = 1e-7; //注意精度15 const int maxn = 10000 + 10;16 17 int n, k, cable[maxn];18 ... 阅读全文

posted @ 2012-02-26 15:00 龙豆 阅读(624) 评论(0) 推荐(1) 编辑

poj-3250 Bad Hair Day **
摘要:1 /* 2 * DA-term-Bad Hair Day.cpp 3 * 4 * 这是一种解法,还可以用 “单调队列” 来做(见后。。) 5 * 6 * Created on: 2011-12-2 7 */ 8 9 #include <iostream>10 using namespace std;11 12 const int maxn = 80000 + 5;13 14 int h[maxn], n;15 int num[maxn], cow[maxn]; //num[i]:第i头牛能看到的牛数16 //cow[i]:在第i头牛东边第一个比i高的牛17 18... 阅读全文

posted @ 2012-02-17 18:46 龙豆 阅读(239) 评论(0) 推荐(0) 编辑

poj-1159 Palindrome **
摘要:1 /* 2 * DA-term-Palindrome.cpp 3 * 4 * DP 5 * 6 * 动态规划求解。 7 8 设ch[1]..ch[n]表示字符串1至n位,i为左游标,j为右游标 ,则i从n递减,j从i开始递增。 9 min[i][j]表示i和j之间至少需要插入多少个字符才能对称,初始置全0 ,我们最终需要得到的值是min[1][n].10 则11 if(ch[i]==ch[j]) //如果两个游标所指字符相同,向中间缩小范围12 mi... 阅读全文

posted @ 2012-02-17 18:43 龙豆 阅读(175) 评论(0) 推荐(0) 编辑

poj-1080 Human Gene Functions **
摘要:1 /* 2 * Human Gene Functions.cpp 3 * 4 * Created on: 2011-12-9 5 * 6 * 类似 最长公共子串 7 */ 8 9 #include <cstdio>10 using namespace std;11 12 const int maxn = 100 + 5;13 14 const int s[5][5] = {{5, -1, -2, -1, -3}, //分数矩阵15 {-1, 5, -3, -2, -4},16 ... 阅读全文

posted @ 2012-02-17 18:40 龙豆 阅读(251) 评论(0) 推荐(0) 编辑

poj-1733 Parity game ****
摘要:1 /* 2 * poj-1733 Parity game.cpp 3 * 4 * Created on: 2012-2-17 5 * Author: LongDou 6 * 7 * 8 * hash离散化 + 并查集 9 * 10 * 设s[0]=0,s[i]=a[1]+a[2]+...+a[i],则信息i j even等价于a[i]+...+a[j]为偶数,即 11 s[j]-s[i-1]为偶数,即s[j]与s[i-1]同奇偶。这样,每条信息都可以变为 12 s[i-1]和s[j]是否同... 阅读全文

posted @ 2012-02-17 17:12 龙豆 阅读(586) 评论(1) 推荐(1) 编辑

poj-1988 Cube Stacking **
摘要:1 /* 2 * poj-1988 Cube Stacking.cpp 3 * 4 * Created on: 2012-2-12 5 * Author: LongDou 6 * 7 * 并查集: 8 * 每个节点有3个域:1、fa[x]:并查集中x的父节点 (fa[x]必压在x之下,但不一定直接相邻) 9 * 2、rank[x]:在x之下(不包括x)且在fa[x]之上(包括fa[x])的方块数10 * (如果直接记录x之下的总方块数,则每次合并都需更... 阅读全文

posted @ 2012-02-12 16:52 龙豆 阅读(331) 评论(0) 推荐(0) 编辑

poj-1182 食物链 **
摘要:1 // poj1182.cpp 2 // 与 poj-1703 Find them, Catch them 思想类似, 只是多了一种状态,rank取值为0、1、2: 3 // 0 : x 与 fa[x] 同类 4 // 1 : x 被 fa[x] 吃 5 // 2 : x 吃 fa[x] 6 7 #include "stdafx.h" 8 #include <cstdio> 9 using namespace std;10 11 const int maxn = 50000 + 10;12 const int maxk = 100000 + 10;13 14 阅读全文

posted @ 2012-02-12 15:26 龙豆 阅读(241) 评论(0) 推荐(0) 编辑

poj-1804 Brainman **
摘要:/* * 逆序对-poj-1804.cpp * * 由于只能交换相邻的两个数,所以答案就是该序列的逆序对数 * * 分治, 归并排序的框架 * */#include <cstdio>using namespace std;const int maxn = 1000 + 5;int n, num[maxn], tot;int t[maxn];//通过归并排序,求num[p..q]之间的逆序对void cal(int p, int q){ if(p == q) return; int mid = (p + q) / 2; cal(p, mid); cal... 阅读全文

posted @ 2011-12-04 13:49 龙豆 阅读(326) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示