poj
文章平均质量分 63
maverick1990
这个作者很懒,什么都没留下…
展开
-
poj 1009 Edge Detection
分类:其他 难度:2题意:给定一张图的每行长度w,及每个点的像素值,以(像素值,持续长度)对表示,求每个像素和周围8个点的差值绝对值的最大值,结果依然以(像素值,持续长度)表示,点数[2,1e9],给定(像素值,持续长度)对的上限为1000对 通过点数的范围可知,这道题不能用O(n)算法遍历,超时;也不能把每个像素点单个存储,超内存。开始考虑对于一个持续长度为len的像素,可知若len原创 2013-04-07 21:18:53 · 1311 阅读 · 0 评论 -
poj 2386 Lake Counting
分类:图论 难度:1 题意:n*m的矩阵,'.'表示没有水,'W‘表示有水,每个格与周围八格均相连,问水连接成的区域有几个。遍历每个格,简单dfs即可,用标记数组flag防止重复搜索。#include#includeconst int N=110;int n,m,ans;char f[N][N];bool flag[N][N];void dfs(in原创 2013-04-17 21:35:33 · 671 阅读 · 0 评论 -
poj 1579 Function Run Fun
分类:dp 难度:1 给出递归式求值,用数组记录,将递归写成迭代,先算出值即可。注意-1,-1,-1为结束,有可能出现三个负数情况(一个小坑,卡了一下。。)#include#includeconst int N=22;int dp[N][N][N];int cal(int a,int b,int c){ if(a<=0 || b<=0 || c<=0)原创 2013-04-10 23:51:13 · 805 阅读 · 0 评论 -
poj 1141 Brackets Sequence
分类:dp 难度:2 题意:给定一个只包含(,),[,]四种字符的字符串,合理字符串为:1、空串,2、若s为合理串,(s),[s]为合理 3、若a,b分别为合理,ab为合理。求一个最短合理串,给定串为其子串。一道并不难的dp,但是一开始考虑多解的存在,即添加的字符可能构成情况2或情况3,仔细读题没发现求哪种解(汗。。可能没读清),后来参考了别的解题报告发现dp添加的字符需构成情况3为正解。原创 2013-04-09 21:55:42 · 635 阅读 · 0 评论 -
poj 1953 World Cup Noise
分类:dp 难度:1 简单DP,给出二进制位数n,求其中没有相邻的1的数的个数。对每位dp,dp[i][0]表示此位为0的合理数,dp[i][1]同理。dp[i][0]=dp[i-1][0]+dp[i-1][1],dp[i][1]=dp[i-1][0]。#include#includeconst int N=50;int n,dp[N][2];int main(原创 2013-04-11 23:47:35 · 756 阅读 · 0 评论 -
poj 1887 Testing the CATCHER
分类:dp-lis 难度1.5 题意:求最长递增子序列。最长递增子序列LIS的三种解法:1、转换为最长公共子序列LCS(先排序,找排序后和原序列的LCS)2、DP解法(O(n^2)),f(i)是以L[i]为末元素最长递增子序列的长度,遍历前i-1个元素,找满足L[j]#include#includeconst int N = 10010;int l[N],n原创 2013-04-11 21:36:48 · 706 阅读 · 0 评论 -
poj 1458 Common Subsequence
分类:dp 难度:1 题意:求两字符串的最长公共字串。a[i]==b[j],dp[i][j] = dp[i-1][j-1]+1,,否则 dp[i][j] = MAX(dp[i-1][j],dp[i][j-1])#include#include#include#include#define MAX(x,y) (x)>(y)?(x):(y)using namespa原创 2013-04-10 20:12:07 · 631 阅读 · 0 评论 -
poj 1142 Smith Numbers
分类:其他 难度:1.5 题意:将一个数各个位的和,与因式分解的每个因数各个位的和,如相等,为smith数,4937775= 3*5*5*65837,4+9+3+7+7+7+5= 42, 3+5+5+6+5+8+3+7=42。求大于给出的n的最小smith数。因式分解,map记录因式分解结果,map[因数]=出现次数。#include#includeusing namespac原创 2013-04-10 19:33:35 · 857 阅读 · 0 评论 -
poj 3233 Matrix Power Series
分类:分治 难度:1.5 题意:给定矩阵a,求s=a^1+…+a^k,结果mod m。矩阵乘法,两次分治,计算a^k和a^1+…+a^k。即a^k=(a*a)^(k/2), a^1+...+a^k=a^1+...a^(k/2) + a^(k/2) * [ a^1+...a^(k/2) ]。#include#includeint n,k,m;const int N = 3原创 2013-04-10 19:01:50 · 745 阅读 · 0 评论 -
poj 1163 The Triangle
分类:dp 难度:1 题意:给出一个数字三角形,行数n,求由顶到底数值和最大的路。基础dp,dp[i][j] = max(dp[i+1][j],dp[i+1][j+1])。注意MAX宏的使用,可能使运算式结果和预期不同,慎用。#include#include#define MAX(x,y) (x)>(y)?(x):(y) const int N=110;int原创 2013-04-10 18:43:28 · 610 阅读 · 0 评论 -
poj 1160 Post Office
分类:dp 难度:2 题意:一条路上有v个村庄和p个邮局(1又是典型dp,又卡了很久。。dp[i][j]表示i个邮局覆盖[1,j]范围村庄的最小距离和,sum[i][j]表示[i,j]范围内有一个邮局时,距离和的最小值,该邮局应取中点(i+j)/2这个村庄(开始这里没想清楚)。先算出所有sum[i][j]。i==1时,dp[i][j]=sum[1][j],i>1时,dp[i][j] =原创 2013-04-10 15:20:09 · 663 阅读 · 0 评论 -
poj 2419 Forests
分类:其他 难度:1 题意:给出p,t两个数,p个人,t棵树,给出一堆i,j两个数的集合,表示第i个人听到第j棵树倒下。听到倒下的树的集合完全相同的人为一组,问有几组人 分析:解法一:简单思路,给一个矩阵re[100][100],re[i][j]存储第i个人听到第j棵树倒下,然后遍历每两个人,比较是否相同,时间复杂度O(p^2 * t),空间复杂度O(p*t)解法二:考虑每原创 2013-08-26 19:09:51 · 1459 阅读 · 0 评论