![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
POJ
文章平均质量分 83
知足c
Good afternoon, Good evening and Good night~
展开
-
POJ 2182 Lost Cows (递推)
DescriptionN (2 <= N <= 8,000) cows have unique brands in the range 1..N. In a spectacular display of poor judgment, they visited the neighborhood 'watering hole' and drank a few too man原创 2014-07-08 20:15:40 · 793 阅读 · 0 评论 -
POJ 3356 AGTC(最长公共子序列)
题意 给你两个DNA序列 求第一个第一个序列至少经过多次删除 、替换 或添加碱基得到第二个序列 其实分析一下可以发现 只要求出两个序列的最长公共子序列 这部分就可以不动了 然后较长序列的长度减去最长公共子序列的长度就是答案了原创 2014-08-07 21:33:17 · 898 阅读 · 0 评论 -
POJ 3080 Blue Jeans(KMP 最长公共子串)
题意 给你n个DNA串 求它们的长度最大的公共子串 如果有多个 输出字典序最小的 长度小于3的不算每个DNA串的长度都是60 可以从子串长度为60依次递减 并枚举所有该长度子串 当某个长度的子串也为其它n-1个串的子串时 就是我们要的答案了判断是否为其它DNA串的子串直接kmp就行了原创 2014-08-09 16:41:54 · 1064 阅读 · 0 评论 -
POJ 1157/SGU104 Little shop of flowers(DP)
题意很简单 你有f束花和v个花瓶 每束花放在不同的花瓶中都会有不同的价值 并且花的相对顺序不能改变 也就是说第i束花放在第j个花瓶中 那么第i+1朵花要放在j以后的花瓶中 设d[i][j]表示第i朵花放在第[j]个瓶子中前i朵花的最大价值 有状态转移方程 d[i][j]=max{d[i-1][1~j-1]}+val[i][j];题目有几个坑点 可能所有价值都为负数 必须所有花都放完原创 2014-07-08 12:26:19 · 895 阅读 · 0 评论 -
POJ 3087 Shuffle'm Up(模拟)
题意 给两堆牌s1,s2交给你洗 每堆有c张 每次洗牌得到s12 其中s2的最下面一张在s12的最下面一张然后按顺序一张s1一张s2 洗好之后可以把s12下面的c张做s1 上面的c张做s2 求多少次洗牌之后可以得到输入给你的串s 不能得到输出-1简单模拟 s1+s2!=s就一直洗牌 如果回到初始状态都没得到s就不会得到s了 得到s就可以输出洗牌次数了原创 2014-08-15 09:57:39 · 1047 阅读 · 0 评论 -
POJ 3282 Ferry Loading IV(模拟,队列)
题意 汽车通过渡船过河 渡船开始在左边 输入按车辆来的顺序输入河两岸的车 渡船每次运输的汽车的总长度不能超过渡船自己本身的长度 先来的车先走 求轮船至少跨河多少次才能将所有的车辆都运完简单模拟 建两个队列 分别装左边的车 和右边的车 算出两边各至少需要运输多少次就行了#include#include#includeusing namespace std;原创 2014-08-14 21:46:52 · 1276 阅读 · 0 评论 -
POJ 1205 Water Treatment Plants(递推)
题意 建设一条河岸的污水处理系统 河岸有n个城市 每个城市都可以自己处理污水 V 也可以把污水传到相邻的城市处理 >或< 除了你传给我我也传给你这种情况 其它都是合法的 两端的城市不能传到不存在的城市令d[i]表示有i个城市时的处理方法数 最后一个城市的处理方法有1.V 自己处理自己的 与前i-1个城市的处理方法无关 有d[i-1]种方法2.< 给左边的城市去处理 也与前i-1个城市的处理方法无关 把自己的污水给第i-1个城市就行了 有d[i-1]种方法3.>V原创 2014-08-13 10:47:39 · 1089 阅读 · 0 评论 -
POJ 1856 Sea Battle(DFS)
题意 图中每个矩形'#'连通块代表一艘船 若一艘船与另一艘有边相邻或有角相邻 那么认为这两艘船相撞 若图中有船相撞 输出bad 否则输出图中有多少艘船可以把图的周围全包上一圈'.' 遍历图中每个点 可知当图中存在一下四种结构中的一个时 必有船相撞 输出并退出循环 否则则dfs这个点 若图中不存在这些结构 就可以输出连通块数量即轮船数了原创 2014-08-12 23:05:18 · 977 阅读 · 0 评论 -
POJ 1692 Crossed Matchings(DP)
题意 有两行数a[n1] b[n2] 分别有n1 n2个数 当第一行一个数和第二行一个数相等时 他们就可以连起来 每个数只能连一个 求最有多少条线使得每条都至少有一条和它相交令d[i][j]表示 a的前i个数和j的前j个数最多可以连接多少条当a[i]==b[j]时 将们连起来是肯定不与其它线相交的 所以d[i][j]=max(d[i-1][j],d[i][j-1])当a[i]!=b[j]时 如果可以在第一行找一个数x<i 第二行找一个数y<j 使得a[x]==b[j原创 2014-08-15 14:38:51 · 1149 阅读 · 0 评论 -
POJ 3993 Not So Flat After All(质因数)
题意 给你两个数a,b 求a,b所有的质因数个数 和每个质因数个数的差的绝对值的和 被描述得好复杂 理解了就是个水题;素数问题就先打个素数表吧 然后能被整除的就是质因数了 然后统计a,b分别能被这个数整除多少次原创 2014-08-08 10:58:05 · 914 阅读 · 0 评论 -
POJ 3934 Queue(DP)
题意 linda在一个幼儿园当老师 他要把n个学生排成一列 使只有m对学生能够讲话 当两个学生相邻或者他们之间的所有人都比他们矮时 他们就能够讲话每个学生的身高都不同令d[i][j]表示把i个学生排成一列使j对学生能够讲话的方法数可以把i个学生分成i-1个学生和一个最矮的学生 把这个学生放在i-1个学生中任意两个学生之间都不会影响原来的结果 但是能讲话的学生对数增加了2 有i-2种放法或者把这个最矮的学生放在两边 这样能讲话的对数只增加了1 有两种放法所以有转移方程d[原创 2014-08-08 09:31:56 · 1161 阅读 · 0 评论 -
POJ 2250 Compromise (DP,最长公共子序列)
题意 求两端文本的最长公共子单词序列 直接lcs增量法可以得出 打印路劲也是直接递归就行原创 2014-08-05 21:03:04 · 1089 阅读 · 0 评论 -
POJ 3390 Print Words in Lines(DP)
POJ 3390 题意 把n个单词排版 每行最多m个字符 不同单词间有空格 每行最后一个单词后没空格 空格占一个字符 当一行的字符数与m的差为t时 就会扣t*t分 求最少扣分令a[i]表示第i个单词的长度 s[i]表示从第一个单词到第i个单词单词长度和d[i]表示前i个单词排版后最少扣的分 则t=m-(s[i] - s[j] + i - j - 1)表示把从第j+1个单词到第i个单词放在一行时这行的字符长度与m的差 那么当t>=0时 有转移方程 d[i]=min(d[i],d原创 2014-08-01 16:34:50 · 1006 阅读 · 0 评论 -
POJ1505&&UVa714 Copying Books(DP)
题意 k个人复制m本书 求最小的时间 即把m个数分成k份 使和最大的那份最小d[i][j]表示i个人完成前j本书需要的时间 有转移方程d[i][j]=min(d[i][j],max(d[i-1][k],s[j]-s[k])) k表示i-1到j之间的所有数 s[k]表示从第一本书到第k本书需要时间的和 初始d[1][i]=s[i];原创 2014-08-01 09:25:15 · 971 阅读 · 0 评论 -
POJ 3895 Cycles of Lanes(DFS)
题意 求无向图中的最长环直接dfs 依次对访问每个点编号 遇到已经访问过的点就是环了 编号相减就是环的长度用数组存图会超内存 所以要用vector存原创 2014-08-01 14:35:38 · 793 阅读 · 0 评论 -
POJ 1365 Prime Land
觉得这题最难的就是理解题意了原创 2014-08-02 22:39:43 · 1312 阅读 · 0 评论 -
POJ 3370 Halloween treats(抽屉原理)
题意 有c个小孩 n个大人万圣节搞活动 当小孩进入第i个大人家里时 这个大人就会给小孩a[i]个糖果 求小孩去哪几个大人家可以保证得到的糖果总数是小孩数c的整数倍 多种方案满足输出任意一种用s[i]表示前i个打人给糖果数的总和 令s[0]=0 那么s[i]共有n+1种不同值 而s[i]%c最多有c种不同值 题目说了c这就是抽屉原理了 n个抽屉放大于n个苹果原创 2014-08-19 21:54:16 · 1033 阅读 · 0 评论 -
POJ 1840 Eqs(hash)
题意 输入a1,a2,a3,a4,a5 求有多少种不同的x1,x2,x3,x4,x5序列使得等式成立 a,x取值在-50到50之间直接暴力的话肯定会超时的 100的五次方 10e了都 然后可以考虑将等式变一下形 把a1*x1^3+a2*x2^3移到右边 也就是-(a1*x1^3+a2^x2^3)=a3*x3^3+a4*x4^3+a5*x5^3考虑到a1*x1^3原创 2014-08-20 08:40:10 · 1039 阅读 · 0 评论 -
POJ 3292 Semi-prime H-numbers(数)
题意 所有可以表示为4*k+1(k>=0)的数都称为“H数” 而在所有“H数”中只能被1和自身整除的H数称为“H素数“ 能表示成两个”H素数“积的数又称为”Semi-prime H数“输入n 求1到n之间有多少个”Semi-prime H数“;方法 先打个H素数表 再用H素数表中的数依次相乘 得到的数都标记 再用一个数组保存每个数以内的标记数 输入n后直接读数组就行了原创 2014-08-07 21:24:12 · 953 阅读 · 0 评论 -
POJ 3461 Oulipo(KMP字符串匹配)
题意 给你两个字符串p和s 求p在s中出现的次数 很裸的kmp因为不止匹配一次 每次找到后还要循环j=next[j]的过程 知道到达s的终点#include#includeusing namespace std;const int N = 10005, M = 1000005;int next[N], ans, n;char p[N], s[M];void kmp原创 2014-08-14 19:57:27 · 1069 阅读 · 0 评论