DP专题
文章平均质量分 74
zwsign
这个作者很懒,什么都没留下…
展开
-
codeforce 543A Writing Code
原题地址 题意 有n个程序员,每个程序员每写一行代码会留下ai个bug,现在有m行需要编写,分给这n个程序员,允许某些程序员写0行代码,要求所有代码中的bug最多不能超过b个,问所有的分配总数模mod 题解 题意很快看懂,想到了大概是个背包吧,但是智障死活想不清楚啊 又跑去搜了发题解 状态数应该有3个,目前的程序员编号,写的代码行数和bug数 转移方程dp[i][j]=dp[原创 2016-04-05 13:02:45 · 509 阅读 · 0 评论 -
HDU 4055 Number String
原题地址 题意 给定一个字符序列,要求求对应地合法数字序列的排列数目,满足对应位置的数字的大小关系和字符序列匹配 II 对应 1 2 3 ID 对应 1 3 2 或者 2 3 1 I 表示递增,D表示递减,?表示随意。 题解 dp[i]是长度为i的排列数,那么考虑大小关系,显然状态转移需要第i-1位的数的值 dp[i][j]表示长度为i,末尾数字为j原创 2016-05-03 00:51:03 · 279 阅读 · 1 评论 -
HDU 4489 The King’s Ups and Downs
原题地址 题意 给定N个小人,小人身高各不相同,现在N个小人站成一排,要求任意连续的3个小人的身高成“高低高”或者“低高低”,问可能的排列数目。 题解 首先,dp[n]是N个人的合法排列数,那么dp[n+1]应该怎么抽象呢? 为了使决策有序,假设前N个人身高1-N,那么第N+1个人身高就是N+1. 为什么可以这样假设呢,因为dp[N+1]应该是一个只和N有关的数,那么插原创 2016-05-03 00:24:17 · 284 阅读 · 0 评论 -
ZOJ 3747 Attack on Titans
原题地址 题意 存在三种士兵G,R,P站成一排,总共N人,要求至少有M个G类士兵连续地站着,至多有K个R类士兵连续地站着,问合法的排列数。 题解 至少有M个G类士兵连续地站着这个条件不好处理,但是可以转化为“至多N个G类士兵连续”的方案数减去“至多M-1个G类士兵连续”的方案数。 接下来就是DP了…… dp[i][0]表示第i个位置为P类士兵的合法情况dp[i][1]表原创 2016-04-28 17:41:40 · 455 阅读 · 0 评论 -
codeforce 608C Chain Reaction
原题地址 题意 给定N个灯塔,灯塔一字排开,输入每个灯塔的坐标和灯光范围,如果一个灯塔被激活,那么灯塔左边(左边较小的方向)在灯光范围以内的塔都会被毁掉,现在可以在所有灯塔的最右边新建一座灯塔,新灯塔的坐标和灯光范围任意,之后所有灯塔从右往左依次激活,如果灯塔已经被毁,就不会激活,问如何选择新建灯塔的位置和灯光范围,可以使最后被毁掉的灯塔最少 题解 DP,激活一座灯塔,左边原创 2016-04-10 00:21:57 · 391 阅读 · 0 评论 -
codeforce 479E Riding in a Lift
原题地址 题意 一个N层建筑,有一台电梯,一个人开始时位于a层,他觉得坐电梯上上下下K次,建筑的b层有一个实验室,实验室禁止进入,而且对于人每次坐电梯有限制条件 假如目前人在X层,希望坐电梯去Y层,需要满足 abs(X-Y) 问人这K次上上下下总共有多少种方案,答案对1e9+7取模 题解 DP啦,状态转移比较好搞吧,有两个问题,一个是严格大于的写法,一个是剩余系下减法原创 2016-04-09 13:40:29 · 354 阅读 · 0 评论 -
CDOJ 1134 男神的约会
原题地址 题意 有一天男神约了学姐姐去看电影,电影院有一个活动,给你一个10*10的矩阵,每一个格子上都有一个0-9的整数,表示一共十种优惠券中的一种。 观众从左上角的格子开始走,走到右下角。每走到一个有着a号优惠券的格子,都必须要玩一个a分钟的游戏来领取这张优惠券。 每次只能向右或向下走。当走到右下角的时候,如果集齐10种优惠券就可以半价看电影原创 2016-04-09 13:37:01 · 461 阅读 · 0 评论 -
codeforce 416C Booking System
原题地址 题意 一家餐馆有K张桌子,每张桌子有最大容量ri; 有N份订单,每份订单有人数和钱 要求每份订单的人必须坐在一张桌子上,否则无法接受该订单 问怎样使钱数最大 #include using namespace std; const int maxn=1000; struct Request { int p; int c; int id; }; stru原创 2016-04-11 22:20:40 · 436 阅读 · 0 评论 -
codeforce 118D Caesar's Legions
原题地址原创 2016-04-05 22:09:52 · 288 阅读 · 0 评论 -
codeforce 429B Working out
原题地址 题意 给定一张N*M的图,图中每个点都有权值,一个人开始位于(1,1),目标是(n,m);一个人开始位于(n,1),目标是(1,m),不算两人路径交点的权值,求两人路径权值之和的最大值 要求:两人路径有且只有一个交点 题解 DP的简单变形吧 down_dp1[i][j]:人1从(i,j)出发到达(n,m)的路径和最大值; up_dp1[i][j]:人1到达(原创 2016-04-06 21:40:35 · 294 阅读 · 0 评论 -
codeforce 474D Flowers
原题地址 题意 Marmot在吃饭的时候会吃红色或者白色的两种花,所以他的晚饭可以视为一个红白花的序列,要求是白花每次出现都是以K朵一组的形式出现 输入 T(数据组数) K(每组白花个数) 问题是当Marmot吃a-b朵花时可能的序列数,答案mod(1e9+7) note k=2 如果序列长为1,只能是R 长为2,可以是RR,WW 长为3,可以是RWW,RRR,W原创 2016-04-04 16:09:05 · 382 阅读 · 0 评论 -
codeforce 606C Sorting Railway Cars
原题地址 题意 有一节火车,共N节车厢,编号1-N,提供两个操作: 1.把任意位置一节车厢移到车头位置; 2.把任意位置一节车厢移到车尾位置; 问最少的移动次数使得序列升序排列 题解 开的virtual contest 做,A题WA2次,B题看不懂题意,C题以为是最长升序子序列,大喜过望,WA21…… 要是正式比赛铁定被插啊…… 不是升序子序列,而是严格单增1的子原创 2016-04-11 22:11:44 · 515 阅读 · 0 评论