
dp
文章平均质量分 72
n-1
这个作者很懒,什么都没留下…
展开
-
HDU 1203 I NEED A OFFER!(01背包基础题)
题目链接: I NEED A OFFER!原创 2014-07-17 20:52:01 · 607 阅读 · 0 评论 -
Regionals 2013 Asia - Daejeon (部分题目题解)
题目链接:Regionals 2013 Asia - Daejeon 6500 Boxes题意:将箱子(矩阵的1)全移动到矩阵的底部需要几步思路:按列从下到上统计。(n,m)的矩阵,移动一个箱子(x,y),如果有c个箱子在底部,那么移动该箱子的步数是(n-x-c-1)。AC代码:#include #include int mp[110][110];int main()原创 2015-05-02 08:57:33 · 1318 阅读 · 0 评论 -
HDU 1143 Tri Tiling (状压DP)
题目链接:HDU 1143 Tri Tiling题意:3*N的矩形,用2*1的小矩形铺满有多少种情况。思路:每个小矩形可以横着放或是竖着放,发现3数据比较小可能状压做,小矩形竖着放为1,横着放为0(所以0是成对出现的),注意我们摆放的规则是摆到那一行应该把那一行铺满。AC代码:#include #include #include using names原创 2015-03-10 21:53:08 · 726 阅读 · 0 评论 -
lightOJ 1047 Neighbor House (DP)
题目链接:lightOJ 1047 Neighbor House题意:有N做房子,每个房子涂3种颜色各有一个花费,相邻的房子颜色不能一样,给N个房子涂颜色,问完成这个任务的最小花费。dp[i][j] 表示涂到第i个房子涂j颜色的最小花费。状态转移方程:dp[i][k]=min(dp[i][k],dp[i-1][j]+p[i].c[k]);AC代码:#原创 2015-03-02 20:57:33 · 624 阅读 · 0 评论 -
HDU 1421 搬寝室 (DP)
题目链接:HDU 1421 搬寝室中文题。dp[i][j] 的意义是:前i件物品取2*j 件的最小疲劳值先从小到大排序。当j==2*i ,dp[i][j]=dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1]);当j>2*i,dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(a[i]-a[i-1])*(a[i]-a[i-1])原创 2015-02-07 12:31:38 · 670 阅读 · 0 评论 -
HDU 1176 免费馅饼 (DP)
题目链接:HDU 1176 免费馅饼中文题。dp[i][j]表示第i秒在j位置得到最大的馅饼数,右边1步,左边1步,原地不动三个状态转移过来。状态转移方程:dp[i][j]=max(dp[i+1][j],max(dp[i+1][j+1],dp[i+1][j-1]))+mp[i][j];AC代码:#include #include #include usin原创 2015-02-05 18:44:43 · 780 阅读 · 0 评论 -
ZOJ 2994 && HDU 1992 Tiling a Grid With Dominoes (状压DP)
题目链接:HDU 1992 Tiling a Grid With Dominoes题意:一个4*N的矩形,用1*2的小矩形铺满的方法数是多少。思路:4*N。只有4行想到状压,dp[i][j]表示前i行状态j的方法数,影响当前行的只有上一行!0成对出现表示横着放,1表示竖着放,所以第一行的状态0.3.9.12.15五种,并且只要上一行是0状态。当前行的状态就为0.3.9.12.15五种可能。原创 2015-01-29 19:39:20 · 1135 阅读 · 0 评论 -
ZOJ 2711 Regular Words (三维Catalan数)
题目链接:ZOJ 2711 Regular Words (三维Catalan数)题意:给出一串3*n长度的字符,其中是含有A,B,C,满足以下条件的字符串有多少种。1.字符串中A,B,C的个数相同。2.该字符串的前缀中 A,B,C的个数成非递减。做法一:一个三维的Catalan数。做法二:三维的DP。AC代码:import java.math原创 2014-11-17 08:02:01 · 1274 阅读 · 0 评论 -
HDU 1160 FatMouse's Speed (最长上升子序列+记录路径)
题目链接:HDU 1160 FatMouse's Speed题意:求体重越重,反而速度越慢的例子,并输出对应的编号。对speed进行从大到小排序,再求weight的最长上升序列,并输出路径。AC代码:#include#include#includeusing namespace std;struct Node{ int weight; int spee原创 2014-09-03 14:26:47 · 871 阅读 · 0 评论 -
Codeforces Round #260 (Div. 2) A,B,C
题目链接:Codeforces Round #260 (Div. 2)A。按价格从小到大排序 若质量存在 前者比后者小,Poor Alex。反之你Happy Alex。注意n==1的时候输出Poor Alex。AC代码:#include#includeusing namespace std;struct node{ int p,q;};原创 2014-08-09 19:48:53 · 776 阅读 · 0 评论 -
HDU 1059 Dividing (多重背包+二进制优化)
题目链接:HDU 1059 Dividing题意:给出6种硬币的个数,他们的价值分别是1-6。问能否按价值平均分成2份。多重背包问题,dp[]的意义是 背包容量为i的背包,最多大的价值。判断dp[half]==half? 相等就可以,不等就不可以。纯多重背包会超时。加个二进制优化(可以参考背包九讲)。类似的题目 UVA562 这个是01背包的问题。AC代码:原创 2014-09-05 18:03:44 · 700 阅读 · 0 评论 -
POJ 3903 Stock Exchange 最大上升子序列
POJ 3903 Stock Exchange题目链接:http://poj.org/problem?id=3903m原创 2014-06-26 10:48:53 · 749 阅读 · 0 评论 -
LightOJ 1295 Lighting System Design (排序+dp)
题目链接:LightOJ 1295 Lighting System Desig题意:给出n种灯(v,k,c,l)分别是灯的(电压,所需电源费用,灯的单价,所需灯的数量),电压高的灯可以代替电压低的灯但是电压低的灯不能代替电压高的等,每种灯的电压各种相同,问选n种灯最小的花费。思路:因为电压高的灯可以代替电压低的灯——按电压高到低排序,然后求前缀和——因为当出现代替时可以,快速统计原创 2015-07-16 19:45:30 · 767 阅读 · 0 评论