
DP
文章平均质量分 74
devYzhou
Be a man,do the right thing
展开
-
poj-2479 简单DP
题目来源:http://poj.org/problem?id=2479题目大意就是求一个数组里面的两端连续值得最大和DP从前往后扫一遍 再从后往前扫一遍然后求1~i 和i+1~n的和的最大值注意题目要求必须得最低取两个数#include #include #define MAXN 50010#define MIN -10000using namespace std;i原创 2013-08-15 23:41:02 · 757 阅读 · 0 评论 -
AGU13-Save The Princess
题目来源: http://www.codechef.com/AUG13/problems/SHIRO题目描述: Shiro is leading an army to save the princess of his kingdom "Abra". The princess has been made a prisoner by the neighboring kingdom "K原创 2013-08-13 01:33:45 · 1100 阅读 · 0 评论 -
分治算法在树的路径问题上的应用
分治算法在树的路径问题中的应用【摘要】 树作为一类特殊的数据结构,在信息学中有着极为重要的作用,各类关于树的题目在竞赛中更是屡见不鲜。本文选取了近几年出现的关于树的路径的题目,并结合例题讲解了分治算法在此类问题上的应用。【关键字】 树 路径 路径剖分 分治 数据结构 【序言】 树被定义为没有圈的连通图转载 2013-08-12 21:43:05 · 2822 阅读 · 0 评论 -
hdu-4576-Robot 二分&DP
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=4576题目有意思一开始就觉得直接DP会超时 就没敢写 可是后来他们竟然都过了....这题因为概率和走步的顺序无关 所以先把走相同步数的先统计 相同步数统计出后二分合并,再和其他步数的合并#include #include #include #define MA原创 2013-08-10 20:28:16 · 751 阅读 · 0 评论 -
hdu-4632-Palindrome subsequence DP&回文字串
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=4632题意是找一个字符串有多少个字串是回文字串,字串可以不连续就是一个dp a[i][j] 表示在i和j的范围中有多少个字串是回文字如果是s[i]=s[j]则 a[j][j+i]=a[j+1][j+i]+a[j][j+i-1]+1否则 a[j][j+i]=a[j+1][j+i]+原创 2013-08-10 20:16:29 · 724 阅读 · 0 评论 -
CF-335B-Palindrome
题目来源:http://codeforces.com/problemset/problem/335/B求最长回文子串(可以不连续)题目给的长度为5·104但是只要求最多输出长度为100的回文串并且母串只有小写字母 所以当母串问2600时必定有长度为一百的回文串所以只要截取母串的前2600个字符就行然后n*n 的复杂度DPf[i][j]=max(f[i][j-1]原创 2013-08-07 17:10:12 · 831 阅读 · 0 评论 -
hdu-4615 Partition
题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=4651题目大意就是整数拆分数据特别大,不能用以前的递归所以。。。 不能百度 只能谷歌http://en.wikipedia.org/wiki/Partition_%28number_theory%29然后在里面找一个公式Leonhard Euler'spe原创 2013-08-07 10:05:02 · 1192 阅读 · 0 评论 -
poj-1700 Crossing River
http://poj.org/problem?id=1700此题讲的是N个人过河,每个人都有自己的过河时间,一条船只能承受2个人,所用时间为其中过河时间最多的,所以呢,想到有两种情况,第一种:过河时间最少的人来回接送其他人,第二种:过河时间最少和次少的人来回接送其他人,刚开始就觉得第一种时间必然是最少的,但是仔细想想,不然。因为第一种情况虽然单次过河时间少,但送人的次数要多,如第1个人(过河时原创 2013-08-18 19:22:44 · 818 阅读 · 0 评论 -
poj-1338Ugly Numbers
http://poj.org/problem?id=1338DP 一步一步累乘上去 用三个标记比较大小就行#include#includeusing namespace std;long long a[1501];int n;void read(){ int i,j,k; int a1=1,a2=1,a3=1; a[1]=1; a1=1;原创 2013-08-18 15:59:47 · 717 阅读 · 0 评论