![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
------------动态规划------------
yphacker
心之所动,且就随缘去吧
展开
-
HDU1423 Greatest Common Increasing Subsequence
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1423解题思路:最长公共递增子序列,如果不懂的话,还是看这个人的讲解:http://www.cnblogs.com/xkfz007/archive/2012/10/17/2728728.htmlAC代码:#include#include#includeusing n原创 2014-12-04 19:43:08 · 331 阅读 · 0 评论 -
hihoCoder 1048 状态压缩·二
#include #include #include #include #define N 1<<5#define MOD 1000000007using namespace std;int n,m;typedef long long ll;ll dp[2][N];bool full[N];bool check(int num){ while(num){原创 2015-08-01 10:03:23 · 655 阅读 · 0 评论 -
hihoCoder 1051 补提交卡
#include #include #include #include using namespace std;int main(){ int T; scanf("%d",&T); while(T--){ vector v; int n,m,maxn = 0,a; scanf("%d%d",&n,&m);原创 2015-08-01 16:10:05 · 346 阅读 · 0 评论 -
hdu 5313 Bipartite Graph
官方题解:首先二分图可以分成两类点XX和YY, 完全二分图的边数就是|X| \cdot |Y|∣X∣⋅∣Y∣.我们的目的是\max {|X| \cdot |Y|}max{∣X∣⋅∣Y∣}, 并且|X| + |Y| = n∣X∣+∣Y∣=n.把原图黑白染色, 每个联通块有a_iai个黑点, b_ibi个白点, 于是就是要确定a_iai属于XX还是属于原创 2015-08-02 23:28:28 · 360 阅读 · 0 评论 -
hdu 5389 Zero Escape(dp类似背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5389解题思路:题目大意:有A和B两个门,每个门上有一个数字,现在有n个人,每个人手里也有一个数字,现在n个人都要选择一个门进去,要求计算门内的人的数字每一位的和,一直累加到一位。这个数和门代表的数字是相同的。问n个人有多少种走法。算法思想:数字根直接mod 9就行了,随原创 2015-08-29 18:48:01 · 413 阅读 · 0 评论 -
ZOJ 2604 Little Brackets(高精度+dp)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2604解题思路:用dp[n][k]表示长度为2n深度不超过k的括号序列个数,那么答案就是dp[n][k]-dp[n][k-1]。边界条件:dp[0][j] = 1递推公式:dp[i][j] = sum{dp[i-k][j] * dp[k-原创 2015-08-31 09:11:40 · 538 阅读 · 0 评论 -
hdu 4283 You Are the One(记忆化搜索,区间dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4283解题思路:题目大意:n个人排队上台,每个人都有个屌丝值Di,每个人的不高兴值为:(在他前面上台的人的个数)*(他的屌丝值)。现在有一个小黑屋:导演可以把让一个人进人小黑屋,让他之后的人比他先上台,最先进入小黑屋的人最后离开。(一个人只能进入一次小黑屋)。问所有人的不高兴值的总和最少原创 2015-09-09 22:18:42 · 530 阅读 · 0 评论 -
hdu 4405 Aeroplane chess(概率dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4405解题思路:题目大意: 并排的0~n的格子,起始点在0,每次向前走时都要掷骰子1~6,得到x,之后往前走x步,还有一些特殊的连接xi,yi, 如果到达xi就直接跳到yi不用掷骰子,求到达>=n掷骰子的次数的期望。算法思想:求概率正推,求期望反推。式子很明显,E(w) 表示原创 2015-09-08 21:26:24 · 311 阅读 · 0 评论 -
hdu 4722 Good Numbers(找规律,记忆化搜索,数位dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4722解题思路:题目大意:给你两个数a,b(a算法思想:先枚举一下0~200内满足条件的值,0,19,28,37,46,55,64,73,82,91,109,118,127,136,145,154,163,172,181,190.规律很显然就出来了,0~10中有一个,10原创 2015-09-06 20:19:54 · 635 阅读 · 0 评论 -
hdu 5119 Happy Matt Friends(dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5119解题思路:题目大意:n个数,从中挑k个,使得这k个数的异或和不小于m,问有多少种挑选方法。算法思想:dp[i][j]表示前 i 个数中选择一些使得异或和为j的方法数,转移方程:dp[i][j] = dp[i - 1][j] + dp[i - 1][j ^ a[i]],即原创 2015-09-17 18:53:26 · 422 阅读 · 0 评论 -
hdu 1024 Max Sum Plus Plus(滚动数组)(DP)
Max Sum Plus Plus题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1024解题思路:给你一个数组,求其分成m个不相交子段和最大值的问题。设a为给定数组,n为数组中的元素总数,dp[i][j]表示前i个数在选取第i个数的前提下分成j段的最大值,其中1状态转移方程为:dp[i][j] = max(dp[i][原创 2016-03-09 22:43:47 · 289 阅读 · 0 评论 -
hihoCoder 1044 状态压缩·一
#include #include #include #include #define N 1025using namespace std;int dp[2][N];int w[N];int cn[N] = {0,1,1};const int num[] = {1,2,4,8,16,32,64,128,256,512,1024};int main(){ int n,原创 2015-07-31 23:47:28 · 794 阅读 · 0 评论 -
hihoCoder 1055 刷油漆
#include #include #include #include using namespace std;struct node{ int next,to;}tree[110];int n,m;int dp[110][110];int head[110];void dfs(int x){ int p = head[x]; int i,j;原创 2015-08-01 16:50:40 · 728 阅读 · 0 评论 -
HDU1159 Common Subsequence
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159解题思路:基本的最长公共子序列,不懂的请看这个人的博客:http://www.cnblogs.com/xkfz007/archive/2012/10/17/2728728.htmlAC代码:#include#include#includeusing names原创 2014-12-04 19:39:04 · 400 阅读 · 0 评论 -
HDU1257 最少拦截系统
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257解题思路:最长递增子序列,感觉只是把最长公共递增子序列变了一个形而已,其实实质都是一样的。AC代码:#include#include#includeusing namespace std;int main(){ int n; while(s原创 2014-12-04 20:08:09 · 681 阅读 · 3 评论 -
POJ1163 The Triangle
题目链接:http://poj.org/problem?id=1163解题思路:简单的dp。AC代码:#include#include#includeusing namespace std;int main(){ int n; int dp[110][110]; int maze[110][110]; while(scanf原创 2014-12-06 00:43:39 · 311 阅读 · 0 评论 -
2010年山东省第一届ACM大学生程序设计竞赛——Clockwise
题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2153Clockwise只要理解题目意思,即可敲出正确代码。题目大意为:给你n个点,让你求出任意一个向量,顺时针旋转180(不能到达180),如果可以达到其余n-2个点,就输出‘C’,逆时针旋转180,如果可以到达n-2个原创 2015-04-28 21:26:37 · 686 阅读 · 0 评论 -
2013年山东省第四届ACM大学生程序设计竞赛——Mountain Subsequences
题目链接:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2607题目大意:给你一个长度为n的字符串仅由小写英文字母组成,求满足a1 aj > aj+1 > ... > an的子串的个数,其实也就是统计所有满足以某一元素为中心左边递增,右边递减的子串的数目,要求该子串原创 2015-05-08 22:18:01 · 570 阅读 · 0 评论 -
HDU3339——In Action
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3339In Action题目大意:给你n个点,每个点都有一个power值,再给你m条路(路之间代表油费),求从0出发到某些点 使得 油量消耗最少且power值达到一半。可以floyd或者spfa求出0到各点的距离 dis[ maxm ]。然后就可以转化原创 2015-05-06 22:34:31 · 389 阅读 · 0 评论 -
HDU5234 Happy birthday && BestCoder Round #42
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5234解题思路:DP题。类似于背包,Dp[i][j][k]表示在第(I,j)个格子背包容量为k的时候的最大值。Dp[i][j][k]=max(dp[i−1][j][k],dp[i][j−1][k],dp[i−1][j][k−w[i][j]]+w[i][j],dp[i][j−1][k−w[i原创 2015-05-24 10:58:33 · 501 阅读 · 0 评论 -
hdu 5418 Victor and World(旅行商问题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5418解题思路:旅行商问题(Traveling Salesman Problem,TSP)又译为旅行推销员问题、货郎担问题,简称为TSP问题,是最基本的路线问题,该问题是在寻求单一旅行者由起点出发,通过所有给定的需求点之后,最后再回到原点的最小路径成本。最早的旅行商问题的数学规划是由Da原创 2015-08-24 16:43:28 · 1401 阅读 · 0 评论 -
hdu 5410 CRB and His Birthday(01背包+完全背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5410解题思路:首先考虑b[i]存在的情况,b[i]只会出现在第一次购买商品的时候用上,用01背包处理,然后01背包处理完后,接着跑一遍多重背包,这次仅考虑a[i]对最终结果的影响,最终输出dp[m]即为最终结果。为什么可以这样呢?因为01背包仅仅是考虑第一次买的情况,在01背包之后原创 2015-08-25 15:30:11 · 726 阅读 · 0 评论 -
hdu 5396 Expression(区间dp+组合数)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5396解题思路:题目大意:题目大意:有n个数,和n-1个符号('+','-','*')形成一个表达式,现在问对于不同的运算序列,得到的结果的总和是多少(结果为非负整数,对1e9+7取余)dp[i][j]记录在区间l到r内的各种不同的运算序列的结果的和。官方题解:原创 2015-08-26 18:43:02 · 568 阅读 · 0 评论 -
hdu 5366 The mook jong(递推)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5366解题思路:官方题解:令f[i]为最后一个木人桩摆放在i位置的方案,令s[i]为f[i]的前缀和。很容易就能想到f[i]=s[i-3]+1,s[i]=s[i-1]+f[i],而s[n]即是所求答案。本题唯一一个值得注意的点就是当n接近60时会爆int用dp[i]表示第i种原创 2015-08-13 10:55:46 · 397 阅读 · 0 评论