
DP
Egqawkq
北航CS研一在读
展开
-
DAG上的动态规划--嵌套矩形
矩形嵌套时间限制:3000 ms | 内存限制:65535 KB难度:4描述有n个矩形,每个矩形可以用a,b来描述,表示长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度)。例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中。你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩原创 2017-09-26 21:19:55 · 331 阅读 · 0 评论 -
codeforces567C. Geometric Progresmit(DP)
C. Geometric Progressiontime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputPolycarp loves geometric progressio原创 2017-10-10 18:43:06 · 332 阅读 · 0 评论 -
动态规划入门
http://cppblog.com/menjitianya/archive/2015/10/23/212084.html转载 2017-12-15 19:07:33 · 229 阅读 · 0 评论 -
nowcoder xinjun与阴阳师
/*看似是完全背包的题目可以看成是稍微加了种类限制的01背包所以三重循环解决第一重是种类第二重是容量第三重是每一种中选择一个模式不断更新dp一维数组*/#include <bits/stdc++.h>using namespace std;const int N = 1000 + 5;int n, m, dp[N];vector <int> a[...原创 2017-12-18 18:07:22 · 398 阅读 · 0 评论 -
2018年全国多校算法寒假训练营练习比赛(第二场) B-TaoTao要吃鸡
#include<bits/stdc++.h>using namespace std;int n,m,h;int v[105],w[105],dp[20500];struct thing{ int w,v;}a[105];bool cmp(thing aa,thing bb){ return aa.w<bb.w;}int main()...原创 2018-01-29 19:17:16 · 377 阅读 · 0 评论 -
codeforces934C. A Twisty Movement (dp)
半天没人写博客,索性自己写吧,有人用的线段树写的,不过我一看题目第一感觉还是dp,毕竟是要求子序列嘛。。题意是给你一串1和2的序列,要求你从中选择一段区间,颠倒区间内的元素,使得非降序子序列长度最大,输出长度。一看这题思路其实很好想,前几天随便看nowcoder题库的看过类似题目,所以马上就知道肯定是求出两个数组,一个表示非降序一个表示非升序,最后两者相加即可。不过这题的样例误导了很多人,这就是很...原创 2018-02-15 15:07:48 · 958 阅读 · 2 评论 -
LeetCode115. Distinct Subsequences
Given a stringSand a stringT, count the number of distinct subsequences ofSwhich equalsT.A subsequence of a string is a new string which is formed from the original string by deleting some (ca...原创 2019-04-03 22:12:02 · 224 阅读 · 0 评论 -
hdu 3507 Print Article
题意与思路:点击打开链接AC code#include<cstdio>#include<iostream>#include<cstring>using namespace std;const int MAXN = 500010;int dp[MAXN];int q[MAXN];//队列int sum[MAXN];i...原创 2017-11-04 23:10:15 · 233 阅读 · 0 评论 -
HDU1078 - FatMouse and Cheese(记忆化搜索+dp思想)
题意:在n*n的网格里面,每个点都有若干块奶酪,老鼠从(1,1)出发,每次最多走k步(只能水平或者竖直行走),且每一次的落脚点必须比上一点的奶酪多,问最多能吃到多少块奶酪。思路:网格嘛直接就是dfs来一发记忆化搜索就好了,dp[i][j]表示从点(i,j)出发可以获得的最多奶酪。代码:#include <stdio.h>#include <...原创 2017-10-06 19:51:19 · 288 阅读 · 0 评论 -
HDU4507吉哥系列故事――恨7不成妻
单身! 依然单身! 吉哥依然单身! DS级码农吉哥依然单身! 所以,他生平最恨情人节,不管是214还是77,他都讨厌! 吉哥观察了214和77这两个数,发现: 2+1+4=7 7+7=7*2 77=7*11 最终,他发现原来这一切归根到底都是因为和7有关!所以,他现在甚至讨厌一切和7有关的数! 什么样的数和7有关呢?...原创 2017-10-15 22:31:09 · 403 阅读 · 0 评论 -
[kuangbin带你飞]专题十五 数位DP
A CodeForces 55D Beautiful numbers#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>using namespace std;const int MAXN = 25;const int MOD = 2520...原创 2017-10-19 23:55:09 · 371 阅读 · 0 评论 -
CodeForces - 859C Pie Rules DP(逆推)(思维好题)
http://blog.youkuaiyun.com/lxy767087094/article/details/78046760转载 2017-11-14 22:30:03 · 422 阅读 · 0 评论 -
Codeforces 888F. Connecting Vertices (Educational Codeforces Round 32 F. Connecting Vertices)
F. Connecting VerticesThere are n points marked on the plane. The points are situated in such a way that they form a regular polygon (marked points are its vertices, and they are numbered in原创 2017-11-12 20:53:34 · 898 阅读 · 0 评论 -
HDU 3555 Bomb(数位DP)
BombTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 20202 Accepted Submission(s): 7548Problem DescriptionThe counter-terrori原创 2017-10-12 22:28:16 · 230 阅读 · 0 评论 -
DAG上的动态规划--硬币问题
题意:有n种硬币,面值分别为V1,V2,...Vn,每种都有无限多。给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值。分析:我们把每种面值看作一个点!表示“还需要凑足的面值”,初始状态为S,目标状态为0。那么若当前状态在i,每使用一个硬币j,状态便转移到i-Vj。代码:#includeusing namespace std;原创 2017-09-26 21:27:45 · 520 阅读 · 0 评论 -
POJ 1661 Help Jimmy(dp)
Description"Help Jimmy" 是在下图所示的场景上完成的游戏。 场景中包括多个长度和高度各不相同的平台。地面是最低的平台,高度为零,长度无限。 Jimmy老鼠在时刻0从高于所有平台的某处开始下落,它的下落速度始终为1米/秒。当Jimmy落到某个平台上时,游戏者选择让它向左还是向右跑,它跑动的速度也是1米/秒。当Jimmy跑到平台的边缘时,开始继续下落。原创 2017-10-06 23:22:55 · 276 阅读 · 0 评论 -
Codeforces Round #436 (Div. 2)E. Fire
E. Firetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputPolycarp is in really serious trouble — his house i原创 2017-09-29 21:06:18 · 345 阅读 · 0 评论 -
hdu1024 Max Sum Plus Plus
题意:给定一个数组,求其分成m个不相交子段和最大值。思路:dp[i][j]表示数组前j个数分成i段的话的最大值,状态的转移如下:dp[i][j]=max(dp[i][j-1],dp[i-1][k])+a[j] ,考虑到这里的数组最大为1e7,所以只是一般的写二维数组肯定爆的,于是采用滚动数组,就是每一个j记录前一次状态的最大值,具体的过程看了代码就懂了。代码:原创 2017-09-30 19:32:23 · 242 阅读 · 0 评论 -
UVa437巴比伦塔(DAG上的DP·LIS)
题目大意:给你一些立方体,给出长宽高XYZ。现在希望你将这些立方题叠起来,使得最后的高度最大,并且这些立方体是可以无限次使用的,但是一个立方体要在另一个立方体的上面的话是需要满足这个立方体的底面是可以完全包含在下面的那个立方体的底面。代码:DAG最长路:#includeusing namespace std;const int maxn = 31;struct N原创 2017-10-01 13:43:48 · 654 阅读 · 1 评论 -
HDU1176免费馅饼
都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现实中运动神经特别迟钝原创 2017-10-03 16:59:51 · 228 阅读 · 0 评论 -
hdu1114Piggy-bank(完全背包)
题意:给你零钱罐不放钱的质量,给你放满钱的质量。然后下面是N组数据,每组数据是某种钱币的价值和质量。现在问你对零钱数量不限的情况下零钱罐里可以存放的最少的价值。思路:看懂题意第一感觉就是贪心,但是发现如果最优的那种不能恰好填满零钱罐就很尴尬,怎么办?明显是完全背包咯(数量不限已经给了提示)。伪代码:for i 1-Nfor i的重量--总重量原创 2017-10-03 22:31:23 · 945 阅读 · 0 评论 -
HDU1074 Doing Homework(状压DP~状态的二进制表示)
HDU1074 Doing Homework(状压DP)原创 2017-10-04 21:21:19 · 415 阅读 · 0 评论 -
SPOJ10606 BALNUM - Balanced Numbers(数位dp)
题意:求出现的数字,所有偶数出现奇数次,所有奇数出现偶数次。比如211是对的,因为1是奇数出现了两次,2是偶数出现了奇数次。思路:数位dp枚举到个位,所形成的数对其进行判断,有三种情况(利用三进制)0表示这个数还没出现,1表示出现为偶数,2表示出现为奇数。代码:#include <string.h>#include <stdio.h>#i...原创 2017-10-19 23:24:16 · 379 阅读 · 0 评论 -
codeforces 868C.Qualification Rounds(bitmasks与状压dp)
C. Qualification Roundstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputSnark and Philip are preparing the原创 2017-10-05 21:48:44 · 612 阅读 · 0 评论 -
POJ 3252-Round Numbers
Round Numbers Time Limit:2000MS Memory Limit:65536K Total Submissions:14472 Accepted:5807 Description The cows, as you know, have no fingers or...原创 2017-10-14 19:44:52 · 243 阅读 · 0 评论