POJ
文章平均质量分 79
代金桥
交流邮箱daijinqiao(at)163.com
展开
-
poj 1151 Atlantis
类型:离散化题目:http://poj.org/problem?id=1151来源:Mid-Central European Regional Contest 2000思路【一】:(1)使用map离散化(2)对每个矩形进行覆盖操作(3)统计覆盖的区域面积和//poj 1151 Atlantis// wa ac 312K 32MS#include #includ原创 2012-05-02 16:39:10 · 512 阅读 · 0 评论 -
POJ 2585 | ZOJ 2193 Window Pains
类型:拓扑排序题目:http://poj.org/problem?id=2585来源:South Central USA 2003思路:每个出现在最前面的数字会覆盖所有可能出现在该位置的窗口,构造有向边连向被覆盖的窗口。然后拓扑排序判断环的存在。!!!每个窗口只能被同一窗口覆盖一次// POJ 2585 Window Pains// ac 236K 0MS#include原创 2012-03-18 15:20:26 · 493 阅读 · 0 评论 -
poj 3621 Sightseeing Cows
类型:分数规划题目:牛可以从任意点出发, 每个点有欢乐值, 一个点可以去多次, 但是欢乐值只增加一次, 每条边有时间消耗, 求一条回路使得 总欢乐值/总时间 最大来源:USACO 2007 December Gold思路:设当前答案为ans,构造新边edge(u, v) * ans - f[v]。假设存在负环,则有edge(u1, v1) * ans - f[v1] + edg原创 2012-03-16 23:39:09 · 363 阅读 · 0 评论 -
poj 2976 Dropping tests
类型:分数规划题目:给你n次测试,对于测试i,总分为bi,你可以得到ai的分数,现让你除去某些测试使得剩下的平均分数最大来源:Stanford Local 2005思路:假设当前猜测值为ans(0 ∑fi ∑(bi * ans) <∑ai,即∑ai / ∑ bi > ans,则ans太小,二分答案即可// poj 2976 Dropping tests// ac 196原创 2012-03-17 09:00:34 · 243 阅读 · 0 评论 -
hdoj 1506 | poj 2559 Largest Rectangle in a Histogram
类型:递推题目:http://poj.org/problem?id=2559思路:从左向右扫一遍,记录l[i](以i为最低高度的左边界),从右向左扫一遍,记录r[i](以i为最低高度的右边界)从左向右扫描时,判断当前位置的前一个位置,如果该位置的hi值大于当前位置的hi值,则更新当前l[i]值为l[i] - 1位置的l[l[i] - 1]值,循环直至l[i] - 1位置的hi小于当原创 2012-03-16 11:39:48 · 317 阅读 · 0 评论 -
POJ 1734-Sightseeing trip
题目是让我们求一个无向图的最小环[周长最小],并将路径按照顺序打印出来求无向图的最小环可以用floyd算法来求打印路径可以有两种方法(1)用pre[i][j] 数组表示 从i到j的路径中 最后松弛的节点,该节点一定在从i到j的路径中,然后递归求解(2)通过枚举节点,如果满足dist[i][k] + dist[k][j] == dist[i][j],则说明k在从i到j的路径中,然后递原创 2012-02-18 23:44:37 · 233 阅读 · 0 评论 -
poj 2135 Farm Tour
类型:最小费用最大流【经典】题目:已知有n个点,m条有各自长度的路。fj要带他的朋友从1点走到n点,再从n点返回1点,要求不走重复的点。求往返所走路径长度的最小值是多少思路:本题相当于求从源点到终点的两条路径,边各不相同,路径长度最小设每个边的容量为1,构造一个容量网络,则本题即是求从源点到终点流量为2的最少花费【即路径长度】,构造超级源点,指向源点,容量为2,费用为0,方便计算原创 2012-03-03 17:37:51 · 221 阅读 · 0 评论 -
poj 3450 Corporate Identity
类型:KMP题目:给定n个字符串,求最长的公共子串,如果不唯一,输出字典序最小的串思路:以第一个串的子串为模式串,从大到小枚举串的长度,依次和其他串匹配,如果都匹配成功,将该长度下字典序最小的子串输出// poj 3450 Corporate Identity// tle tle ac 332K 1032MS#include #include #include #includ原创 2012-03-15 11:28:17 · 228 阅读 · 0 评论 -
poj 2001 Shortest Prefixes
类型:Trie题目:http://poj.org/problem?id=2001来源:Rocky Mountain 2004思路:对输入的字符串插入到字典树中,然后对每个字符串查找结束条件:(1)当前字符只有一个分支(2)查到单词最后一个字符// poj 2001 Shortest Prefixes// ac 472K 0MS#include #include #inc原创 2012-04-04 15:42:26 · 265 阅读 · 0 评论 -
poj 1273 Drainage Ditches | hdoj 1532
类型:最大流经典题目 本题同hdoj 1532 dinic算法实现 [可做模板]!!! ne 需要从2开始,正向边的编号为偶数,反向边的编号为奇数如果从1开始,那么当更新编号为3的边时,其反向边的编号为4,而此时更新的是编号为2的边,出现错误// hdoj 1532 | poj 1273// poj 0ms hdoj 15ms#include#inclu原创 2012-03-01 13:14:11 · 313 阅读 · 0 评论 -
poj 3694 Network
类型:图连通性题目:http://poj.org/problem?id=3694来源:2008 Asia Hefei Regional Contest Online by USTC思路:Tarjan 算法搜索得到一颗树,记录每个节点的父节点及该节点的搜索深度,同时记录桥【通过记录末端点来记录桥--一一对应】对于新添加的边,容易知道从这两个端点往上到其最近公共祖先路径上的桥会消除原创 2012-04-04 21:45:58 · 247 阅读 · 0 评论 -
poj 3648 Wedding
类型:2-sat题目:http://poj.org/problem?id=3648来源:Waterloo Local Contest, 2007.9.29思路:每个人都有可能坐在左边或者右边,将其分为两个点i, i + 2 * n。定义新娘在左侧。(1)对于一对有暧昧关系的人i, j。如果i在右边,必有j在左边,如果j在右边,必有i在左边。构造有向边: addedge1(i原创 2012-03-27 13:23:15 · 253 阅读 · 0 评论 -
poj 2186 Popular Cows
类型:有向图连通性题目:有n头牛,m个形式如(A, B)表示牛B受牛A欢迎,求受所有牛欢迎的牛的数量来源:USACO 2003 Fall思路:在同一强连通分量中,不同牛之间相互受欢迎,可以将其看做一个点[缩点],构造新图。假设新图连通,如果某个牛受所有其他牛欢迎,则其顶点的出度为0,其他点出度不为0,否则将不存在牛受其他所有牛欢迎。如果新图不连通,则存在多个出度为0的点。所以可以通过判原创 2012-03-21 16:20:35 · 249 阅读 · 0 评论 -
poj 2762 Going from u to v or from v to u
类型:有向图连通性题目:http://poj.org/problem?id=2762 判断一个有向图单向连通性来源:POJ Monthly--2006.02.26,zgl & twb思路:对于强连通分量中的点相互连通,可以将其看做一个点处理。搜索所有的强连通分量,对强连通分量缩点后,构造新图进行拓扑排序,判断是否成链。如果成链,结果为真。假如不成链,即存在某时刻两个点的入度都为0,原创 2012-03-21 09:50:50 · 440 阅读 · 0 评论 -
poj 3177 Redundant Paths
类型:双连通分量 + 缩点题目:http://poj.org/problem?id=3177来源:USACO 2006 January Gold思路:双连通分量不需要添加新边,将各个双连通分量看做一个点的话,生成树的边即为原图中的桥,此时添加的边数 = (树中度为1的节点 + 1) / 2进行Tarjan算法过程中,统计不同桥的信息,如果某边不是桥,则两节点属同一连通分量,原创 2012-03-20 17:42:13 · 295 阅读 · 0 评论 -
poj 1523 | zoj 1119 SPF
类型:图的割点题目:http://poj.org/problem?id=1523来源:Greater New York 2000思路:构图,通过dfs【Tarjan算法】记录各个顶点的深度优先数,在回退的过程中记录low数组,如果孩子节点low值大于等于父节点step值,记录分割的联通分量的个数!!!输出格式// poj 1523 SPF// ac 1164K 16MS原创 2012-03-20 09:14:23 · 370 阅读 · 0 评论 -
poj 1325 | zoj 1364 Machine Schedule
类型:最小顶点覆盖题目:http://poj.org/problem?id=1325思路:裸的最小顶点覆盖!!!题意要把握准确[mode:工作模式,在同种模式下可进行多项工作]// poj 1325 Machine Schedule// ac 176K 0MS#include #include #include #include #include using na原创 2012-03-19 20:07:56 · 261 阅读 · 0 评论 -
poj 3041 Asteroids
类型:最小顶点覆盖题目:http://poj.org/problem?id=3041来源:USACO 2005 November Gold思路:将行号和列号分别看做不同的点,如果在行x、列y中存在asteroid,则构造边x->y,则题目要求的即是用最少的点覆盖所有的边,即最小顶点覆盖,最小顶点覆盖 = 二分图最大匹配// poj 3041 Asteroids// ac 12原创 2012-03-19 17:34:51 · 200 阅读 · 0 评论 -
poj 1386 | hdoj 1116 play on words
类型:欧拉回路题目:http://poj.org/problem?id=1386来源:Central Europe 1999思路:首先考虑的是将单词看做点,可以连接的单词之间连一条边,这样就是求一条路径包含所有的点,该问题为复杂的哈密尔顿问题。然后考虑转化模型,将单词看做边,每个单词的首尾字符看做点,那么每个单词就是一条由首字符点连向尾字符点的边,即转化为就一条路径连接所有的边原创 2012-03-19 09:56:34 · 257 阅读 · 0 评论 -
poj 2104 K-th Number
类型:划分树【学习资料】题目:http://poj.org/problem?id=2104来源:Northeastern Europe 2004, Northern Subregion思路 代码源自:http://blog.sina.com.cn/s/blog_5f5353cc0100ki2e.html http://blog.csdn.net/zxy_sno原创 2012-03-28 18:16:26 · 302 阅读 · 0 评论 -
ural 1031. Railway Tickets | poj 2355
类型:DP题目:http://acm.timus.ru/problem.aspx?space=1&num=1031思路:用f(i)表示到第i站时的最小费用,考虑第i站有两种选择,单独买一张票,或者和前面的几个站共同买一张票!!!可能总共用一张票就够了// ural 1031. Railway Tickets// wa wa wa wa ac 0.406s#include #i原创 2012-03-12 19:21:39 · 663 阅读 · 0 评论 -
poj 2723 Get Luffy Out
类型:2-sat题目:http://poj.org/problem?id=2723来源:Beijing 2005思路:2-sat判定问题。将一把钥匙看做两个点,不取为i, 取为i + 2n。(1)对于每一对钥匙(u, v),二者最多只能选一个,故有选择v + 2n, u必选,选择u + 2n,v必选。(2)对于每一个们上的锁(u, v),二者至少选一个,固有选择u,v +原创 2012-03-27 16:03:08 · 277 阅读 · 0 评论 -
poj 2155 Matrix
类型:二维线段树题目:给定一个n*n的矩阵由元素0和1组成,对于操作C x1 y1 x2 y2表示对子矩阵(x1,y1)到(x2,y2)各个元素按位取反,操作Q x y表示查询(x,y)位置的元素,输出查询的结果来源:POJ Monthly,Lou Tiancheng思路:对每一次C操作,更新线段树相对应根节点的值,对其取反。对每一次Q操作,从根节点开始往下查找,如果当前根值为原创 2012-03-05 08:47:34 · 217 阅读 · 0 评论 -
poj 1730 Perfect Pth Powers
题目:对于整数x,求满足p^q = x条件的q的最大值数论题对整数x分解得:x = a1^b1 * a2^b2 *...*an^bn 其中a1、a2、、、an为素数由x = p^q,则x的素因子和p的素因子相同则有:a1^b1 * a2^b2 *...*an^bn = p^q易得,q的最大值即各个素因子个数的最大公约数本题有负整数,对于负整数如果最大公约数为偶数原创 2012-02-23 13:41:11 · 231 阅读 · 0 评论 -
poj 1781-In Danger
证明见这里#include#includeusing namespace std;int main(){ int n,x,i; char ch; while(cin>>n>>ch>>x,n||x) { n=n*(int)pow(10.0,x); for(i=1;;i<<=1) if(i<=n&&n<i*2) break; cout<原创 2012-02-21 19:02:51 · 303 阅读 · 0 评论 -
poj 2992-Divisors
<br />// poj 2992-Divisors/* * 数学题-因子个数 * 求:C(n,k)的因子的个数 * !!!直接计算会超时 * 需要打表d(n,m)保存所有n!相对于质因子m的约数的个数 * 知识: * 1:整数n分解质因数 n=p1^a1*p2^a2*...*pm^am * 2: n 的因子个数 num=(a1+1)*(a2+1)*...*(am+1) * 3:n!相对质数p的因子个数 x=n/p+n/p^2+n/p^3+…… * 4: n!的素因原创 2011-05-06 19:58:00 · 397 阅读 · 0 评论 -
poj 1845-Sumdiv
<br />// poj 1845-Sumdiv/* * 数学 * 求 A^B 因子的和模9901 (0 <= A,B <= 50000000) * A可以唯一分解成p1^a1*p2^a2*...*pn^an, * 则 A^B=p1^(a1*B)*p2^(a2*B)*...*pn^(an*B); * sum(A^B的所有约数)=[1+p1+p1^2+...+p1^(a1*B)]*[1+p2+p2^2+...+p2^(a2*B)]*[1+pn+pn^2+...+pn^(an*B)]原创 2011-04-29 20:12:00 · 325 阅读 · 0 评论 -
poj 1083-Moving Tables
<br />// poj 1083-Moving Tables/* * 贪心策略 * 枚举每个房间找出各个房间任务重叠的次数,最大值即需要的最少次数 * !!!起点为偶数时 -1,终点为奇数时 +1(向外扩) * 类似题目:hdoj 1800-Flying to the Mars * wa wa wa ac 155k 0ms */#include<iostream>#include<algorithm>using namespace std;#defi原创 2011-04-26 13:13:00 · 365 阅读 · 0 评论 -
poj 2121-Inglish-Number Translator
<br />// poj 2121-Inglish-Number Translator/* * 字符串处理 * 题意:读入一个用英文单词表示的数,将其用数字显示出来 * 形如:…hundred…million…hundred…thousand…hundred… * 其中的百万和千要做特殊处理,另设变量表示百万数和千数 * cin.getline() 串不接收回车 * fgets() 串接收回车 * !!!以空行结束,则串s为空时结束 * !读取每个单词时用串原创 2011-04-27 16:57:00 · 469 阅读 · 0 评论 -
poj 1157-LITTLE SHOP OF FLOWERS
<br />// poj 1157-LITTLE SHOP OF FLOWERS/* * 动态规划-花束摆放 * 状态转移方程:dp(i,j)=max(dp(i-1,j-1)+a[i][j],dp(i,j-1)) * !!!负值的处理 * 初始化 dp为小值&&将第一束放入 * 测试数据: * 3 5 * -50 -50 -50 -50 -50 * -50 -50 -50 -50 -50 * -50 -50 -50 -50 -50 * 答案是 -150 *原创 2011-04-26 16:50:00 · 511 阅读 · 0 评论 -
poj 1655 Balancing Act
类型:DFS来源:POJ Monthly--2004.05.15 IOI 2003 sample task题目:一棵树,定义每个节点的balance值:去掉这点节点后的森林里所有树的最大节点数。求出最小的balance值和其所对应的节点编号思路:通过邻接表构造以1为根的二叉树,对其进行dfs,对于待删除节点u,其balance值为各个以u为根的子树的节点数的最大值或者除该树(u为根原创 2012-03-06 12:59:55 · 219 阅读 · 0 评论 -
poj 1470 | zoj 1141 Closest Common Ancestors
类型:LCA题目:http://poj.org/problem?id=1470来源:Southeastern Europe 2000思路:使用LCA算法求最近公共祖先,并记录个数// poj 1470 Closest Common Ancestors// OLE AC 2956K 563MS#include #include #include #include #inc原创 2012-03-23 18:39:51 · 355 阅读 · 0 评论 -
poj 3160 Father Christmas flymouse
类型:有向图连通性 + spfa求最长路题目:http://poj.org/problem?id=3160来源:POJ Monthly--2006.12.31, Sempr思路:强连通分量中的点可以相互到达,可以将其缩点,构造新有向无环图。如果要使结果最大,容易知道圣诞老人的起点是新图中节点入度为0的点。将新点的权赋值到对应的边上,则问题即是求从起点开始的最长路!!!点权有负值原创 2012-03-23 18:49:13 · 322 阅读 · 0 评论 -
poj 3683 Priest John's Busiest Day
类型:2-sat【模板】题目:http://poj.org/problem?id=3683来源:POJ Founder Monthly Contest – 2008.08.31, Dagger and Facer思路:本题为需要输出结果的2-sat问题。令i和i + n表示节点i,对于有向边的构造,如果i和j有冲突,那么选择i,j + n必选,选择j, i + n必选,构造两条有向原创 2012-03-27 10:42:54 · 310 阅读 · 0 评论 -
zoj 1508 | poj 1201 Intervals
类型:差分约束题目:http://poj.org/problem?id=1201来源:Southwestern Europe 2002思路:设S[i]是集合z中小于等于i的元素的个数(1)z集合中范围在[ai, bi]的整数个数即S[bi] - S[ai-1]至少为ci,得到不等式组S[bi] - S[ai-1] >= ci ,转化为 S[ai-1] - S[bi] (2)原创 2012-03-26 18:24:21 · 410 阅读 · 0 评论 -
poj 1742 Coins
类型:DP题目:http://poj.org/problem?id=1742来源:LouTiancheng@POJ思路:用cnt数组记录每个数据使用当前coin的次数,在次数限制范围内不断更新未达到的值 O(nm)// poj 1742 Coins// ac 768K 1532MS#include #include #include #include #include原创 2012-03-26 18:07:57 · 333 阅读 · 0 评论 -
poj 2406 Power Strings
类型:KMP题目:给定一个串,求该串的周期数用next数组记录各个位置的next值!!!串ababa// poj 2406// wa wa ac 5128K 157MS#include #include #include #include using namespace std;#define FOR(i,a,b) for(i = (a); i < (b); ++i原创 2012-03-08 22:15:40 · 169 阅读 · 0 评论 -
poj 3461 Oulipo
类型:KMP题目:给定原串和模式串,求模式串在原串出现的次数!!!char[]类型从1开始用scanf("%s %s", sp + 1, st + 1);// poj 3461// wa ac 1264K 94MS#include #include #include #include using namespace std;#define FOR(i,a,b) for(原创 2012-03-08 21:12:22 · 186 阅读 · 0 评论 -
poj 2752 Seek the Name, Seek the Fame
类型:KMP来源:POJ Monthly--2006.01.22,Zeyuan Zhu题目:给定一个串,求其所有的即是其前缀又是其后缀的串的长度,从小到大输出串本身即是其前缀又是其后缀,然后就是next[len]了,依次进行直到next[i] = 0// poj 2752// ac 2556K 157MS#include #include #include #incl原创 2012-03-09 08:09:04 · 215 阅读 · 0 评论 -
poj 3207 Ikki's Story IV - Panda's Trick
类型:2-sat题目:http://poj.org/problem?id=3207来源:POJ Monthly--2007.03.04, Ikki思路:对每一条link有两种选择,放圆内或者圆外。求满足条件的情况是否存在,属于2-sat问题。(1)将每条link看做两个点,分别表示在圆内链接和在圆外链接,只能选一个,用i和i`表示。(2)如果两条link必须一个在圆内,一个原创 2012-03-24 17:43:51 · 250 阅读 · 0 评论