
dp
Radiumm
你的努力还轮不上你拼天赋!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
动态规划——1087 Super Jumping! Jumping! Jumping!
这道题是最长上升子序列的变形,把长度变成和即可#include#include#include#include#define maxn 1010using namespace std;typedef long long ll;int main(){ int n; ll a[maxn],dp[maxn]; while(scanf("%d",&n) && n原创 2017-07-05 22:40:13 · 215 阅读 · 0 评论 -
POJ 1170 Shopping Offers
题目链接:http://poj.org/problem?id=1170题意:有k种物品,每种物品对应若干标号,给出了这k种物品的标号和它们对应的数量和单价。有s种价格优惠方式,每种方式告诉了一些标号和数量以及它们的优惠价格。求恰好购买k种物品及其对应的数量所需的最小费用。分析:离散化+状态压缩dp+背包思想,因为只有5种物品,每种物品的数量也不超过5,所以想到了状态压缩dp,用六进制,有5...原创 2018-09-15 23:36:18 · 306 阅读 · 0 评论 -
hdu 4489 The King’s Ups and Downs
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4489题意:给了一个数n,求使得n个不同的数高低间隔排列的所有种数分析:设每次插入一个人的高度是最高的那一个,则为了满足条件,它左边的是从高到低,右边是从低到高则求从高到低的排列数即可.设dp[i][0]表示开头是递增的,dp[i][1]表示结尾是递减的,则对于有i个人的排列,种数为dp...原创 2018-09-06 16:37:11 · 204 阅读 · 0 评论 -
hdu 3092 Least common multiple
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3092题意:给了一个数把它分成若干个数的和的形式,求这若干个数的最小公倍数的最大值是多少分析:gcd(a,b) = 1时lcm最大,所以目标是尽可能将这个数处理成全为素数的形式。先用线性素数筛出3000里的所有质数,然后枚举每个质数,尽可能将这个质数填到n中,此时就类似于完全背包,每一个大于等于...原创 2018-09-16 23:24:32 · 225 阅读 · 0 评论 -
HDU 4055 Number String
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4055题意:给了一组字符串包含'?','I','D'。'I'代表当前字符比后一个字符大,'D'代表当前字符比后一个字符小,'?'则都可以。询问有多少个这样的排列(包含1-n+1,n为字符串的长度)分析:递推。有两种情况第一种是第i个为I(小于号,升序):dp[i][j] = dp[i-1][...原创 2018-09-10 22:41:10 · 258 阅读 · 0 评论 -
POJ 1015 Jury Compromise
题目链接:http://poj.org/problem?id=1015题意:先随机挑选n个人作为陪审团的候选人,然后再从这n个人中选m人组成陪审团。选m人的办法是:控方和辩方会根据对候选人的喜欢程度,给所有候选人打分,分值从0到20。为了公平起见,法官选出陪审团的原则是:选出的m个人,必须满足辩方总分和控方总分的差的绝对值最小。如果有多种选择方案的辩方总分和控方总分的之差的绝对值相同,那么选...原创 2018-09-23 21:34:10 · 230 阅读 · 0 评论 -
hdu2844
题意:给了n件物品,每件物品有对应的价值Ai和数量Ci,求1-m价值之间有多少价值能够通过这些物品的价值凑出来分析:多重背包,因为n很大需要二进制优化 nlogn的复杂度#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using names...原创 2018-09-14 09:46:13 · 1283 阅读 · 0 评论 -
HDU 1503
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1503题意:给了两个字符串,找出它们的最长公共子序列和剩下的两部分拼接后的串分析:利用LCS过程,标志出两个串不同长度时的状态,再回溯,逆向输出结果代码:#include<cstdio>#include<cstring>#include<iostream...原创 2018-09-19 18:04:16 · 346 阅读 · 0 评论 -
hdu 1159 Common Subsequence
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159题意:给了两个字符串,求最大公共子序列的长度分析:裸的LCS题目,dp[i][j]表示第一个字符串前i个字符和第二个字符串前j个字符最长公共子序列的长度。如果第i个字符和第j个字符相同,它们的最长公共子序列的长度为前i-1个字符和前j-1个字符的最长公共子序列的长度加一,否则取dp[i-1...原创 2018-09-19 22:51:37 · 142 阅读 · 0 评论 -
HDU 2159
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2159题意:有n种怪物,杀掉每种怪物减少一定的忍耐值,增加一定的经验值,经验值超过n才能晋级,忍耐度不超过m,最多杀死s只怪物,问晋级剩下的忍耐度最大值为多少,不能晋级输出-1分析:二维背包+完全背包,二维费用背包的两种费用分别为杀死的怪物数和忍耐度ti,dp[i][j]表示杀死j只怪物剩下i忍...原创 2018-09-14 20:46:10 · 127 阅读 · 0 评论 -
UVA 111 History Grading
题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=47题意和分析:给了1-n的一个排列作为这n个数的排序,比如4231代表1是第4个数,2是第二个数,3是第三个数,4是第一个数.所以要先把这些数按照出现的位置整理一下,然后...原创 2018-09-21 16:13:08 · 203 阅读 · 0 评论 -
最小邮票数
有若干张邮票,要求从中选取最少的邮票张数凑成一个给定的总值如,有1分,3分,3分,3分,4分五张邮票,要求凑成10分,则使用3张邮票:3分、3分、4分即可。 有多组数据,对于每组数据,首先是要求凑成的邮票总值M,M<100。然后是一个数N,N〈20,表示有N张邮票。接下来是N个正整数,分别表示这N张邮票的面值,且以升序排列。对于每组数据,能够凑成总值M的最少邮票张数...原创 2019-02-02 14:30:27 · 408 阅读 · 0 评论 -
Codeforces 1015 E2. Stars Drawing (Hard Edition)
题意:给了一个1000x1000的矩形,每个格子不是'.'就是'*',要求找到一种方案,使得每个'*'上下左右四个方向的延伸长度相同,不同的十字可以相互覆盖,如果没有这种方案输出-1分析:由于是1000x1000只能O(n^2),不能暴力搜索,只能dp.先预处理出每个为'*'的格子上下左右都有多少个'*'的延伸,然后这四个方向长度的最小值是十字的长度,压入vector里.然后判断是否有点没有被...原创 2018-09-05 20:16:36 · 376 阅读 · 0 评论 -
hdu 1864 最大报销额
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1864题意:给了n张发票,每张发票只报销A,B,C三类物品,每件物品的报销额不超过600,每张发票的报销额不超过1000,在只能报销q元的条件下,问最多能报销多少钱,输出两位小数。分析:背包问题。最大容量就是只能报销的钱数q,背包里每一个物品占的体积就是它的价格,获得的价值也是对应的价格。但是q...原创 2018-09-11 23:09:10 · 163 阅读 · 0 评论 -
动态规划——hdu1176免费馅饼
/*设计的算法时间空间复杂度都较高,但是AC了,希望大神能够指点改进*/#include#include#include#define maxn 100010using namespace std;int a[15][maxn],dp[15][maxn];//dp[i][j]表示第i个位置第j天int main(){ int n; while(scanf("%d"原创 2017-07-05 17:39:19 · 355 阅读 · 0 评论 -
蓝桥杯 金陵十二钗
算法提高 金陵十三钗 时间限制:1.0s 内存限制:256.0MB 金陵十三钗 本题难度:难 本题占分比例:5%问题描述 在电影《金陵十三钗》中有十二个秦淮河的女人要自我牺牲代替十二个女学生去赴日本人的死亡宴会。为了不让日本人发现,自然需要一番乔装打扮。但由于天生材质的原因,每个人和每个人之间的相似度是不同的。由于我们这是编程题,因此情况就变成了金陵n钗。给出n个女人和n个...原创 2018-03-03 19:41:23 · 706 阅读 · 0 评论 -
蓝桥杯 算法提高 金明的预算方案
问题描述 金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间金明自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早,金明就开始做预算了,他把想买的物品分为两类:主件与附件,附件是从属于某个主件的,下表就是一些主件与附件的例子:主件附件电脑打印机,扫描仪书柜图书书桌台灯,文具工作椅无如果要买归类为附件的物品...原创 2018-03-04 10:57:47 · 329 阅读 · 0 评论 -
HDU2955 Robberies
RobberiesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 29525 Accepted Submission(s): 10799Problem Description The aspiring Roy the Robber h...原创 2018-05-21 11:39:22 · 190 阅读 · 0 评论 -
Codeforces 697D Puzzles
D. Puzzlestime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputBarney lives in country USC (United States of Charzeh). USC has n cities numbered from 1 ...原创 2018-07-14 21:27:03 · 291 阅读 · 0 评论 -
Codeforces 987C. Three displays
题意:给了数组s1,s2...sn和数组c1,c2...cn,求满足i<j<k且si<sj<sk的ci+cj+ck的最小值分析:dp+暴力 ,我们用dp[i][j]表示用了i个数(i = 1,2,3)的前j个数的满足题意的最小值。用了i个数的前j个数的结果可以由用了i-1个数的前j个数的结果加上满足大小关系的第j个数得到。由此可以得到,状态转移方程为dp[i][j] =...原创 2018-07-31 14:53:52 · 396 阅读 · 0 评论 -
Codeforces 429B. Working out
题目链接:http://codeforces.com/problemset/problem/429/B题意:给了一个nxm的矩阵,A从(1,1)出发,每次只能走相邻的右边或者下边的格子走到(n,m)停止.B从(n,1)出发,每次只能走相邻的右边或者上边的格子,走到(1,m)停止,两人的路线只能交于一个格子,除相交的格子外,求两人路线上其他格子总和的最大值分析:动态规划.通过递推求出分别以左...原创 2018-08-09 21:01:06 · 251 阅读 · 0 评论 -
ZOJ 3747 Attack on Titans
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5170题意:有n个位置,填充G,P,R三个字母,问填充至少m个连续的G,至多k个连续的R的情况有多少种分析:动态规划,dp[i][j](j = 0->G,j=1->P,j = 2->R)dp[i][j]表示第i个数填充j对应的字母的时候,前...原创 2018-08-14 17:10:27 · 210 阅读 · 0 评论 -
UVA10328
题目链接: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1269题意:抛n次骰子,求至少出现 连续k次 正面的有多少次分析:动态规划,dp[i][j]表示第i次为出现j (j = 0为正面,j = 1为反面 ),出现至多连...原创 2018-08-16 10:32:18 · 303 阅读 · 0 评论 -
Codeforces 1016C Vasya And The Mushrooms
题目链接:http://codeforces.com/contest/1016/problem/C题意:从左上角格子开始走,每次走一个临近的格子,速率为1,走过的格子取走所有的蘑菇,每个格子上的蘑菇有一个增长速率,问获得的最大的增长速率是多少分析:dp。除了样例中给的两种走法,还有可能是两种走法的结合。预处理出来每次折线走法的每一个格子获得的速率值,绕圈走法左边的列相当于它右边的一列加...原创 2018-08-30 16:54:00 · 163 阅读 · 0 评论 -
Codeforces 1025D Recovering BST
题目链接:http://codeforces.com/contest/1025/problem/D题意:给了一组数,最大公约数不为1的两个数可以连一条边,问能否构造出一棵二叉搜索树分析:区间dp,r[i][j]表示i-j区间的数能否作为以第i-1个数为根的右子树,l[i][j]表示i-j区间的数能否作为以第i-1个数为根的左子树,注意用相邻的两个数赋初值代码:#include&l...原创 2018-08-28 20:32:46 · 294 阅读 · 0 评论