
DP
文章平均质量分 62
动态规划
李峻枫
这个作者很懒,什么都没留下…
展开
-
Codeforces Round #465 (Div. 2) E. Fafa and Ancient Mathematics
题目大意给出一个表达式,符号位置全部用?替代,已知运算只有加法和减法,并且知道有ppp次加法和mmm次加法。问这个表达式的最大值是多少。时间限制2s数据范围minp.m≤100min{p.m}\le 100minp.m≤100表达式长度≤104\le 10^4≤104题解这题细节比较多,特别是处理这个字符串表达式的时候。先将表达式处理成为树,然后就可以在树上dp了。设fi,jf_{i,j}fi,j表示在第iii个结点,使用了jjj次运算(次数较少的那一种运算)的最大值。设gi,j原创 2021-07-27 10:40:10 · 132 阅读 · 0 评论 -
Codeforces Round #293 (Div. 2) D. Ilya and Escalator
题目大意有nnn个人,排成一列,现在他们将要进入自动扶梯。已知在111秒内,排在对头的人有ppp的概率进入自动扶梯,有1−p1-p1−p的概率保持不动。nnn个人必须依次进入自动扶梯,进入了自动扶梯的人不会再次离开扶梯。问在ttt秒后,自动扶梯里人数的期望是多少。时间限制2s数据范围n,t≤2000n,t\le2000n,t≤2000题解一个非常好想到的dp,设fi,jf_{i,j}fi,j表示在第iii秒,自动扶梯里有jjj个人的概率。转移显然fi,j=fi−1,j×(1−p)原创 2021-07-27 09:43:23 · 128 阅读 · 0 评论 -
Codeforces Round #695 (Div. 2) D. Sum of Paths
题目大意给出一个nnn维数组a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an,定义一条长度为kkk的路径如下:从一个点c0c_0c0出发,可以向左一步到c0−1c_0-1c0−1(当前不在最左边),向右走一步到c0+1c_0+1c0+1(当前不在最右边),可以走重复点。记通过第iii次移动之后到达的位置为cic_ici,则c0,c1,⋯ ,ckc_0,c_1,\cdots,c_kc0,c1,⋯,ck就称为一条合法路径。定义该条合法路径的权值为ac0原创 2021-07-25 15:42:37 · 116 阅读 · 0 评论 -
Codeforces Round #574 (Div. 2) C. Basketball Exercise
题目大意给出两个nnn维数组a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an和b1,b2,⋯ ,bnb_1,b_2,\cdots,b_nb1,b2,⋯,bn。在a,ba,ba,b两个数组中,交替选择且每次选择的数的下标都要严格大于上一次选择的数的下标。求选出数的所有数的总和最大是多少。时间限制2s数据范围n≤105n\le10^5n≤105ai,bi≤109a_i,b_i\le10^9ai,bi≤109题解一个简单的DP,设fif_ifi原创 2021-07-24 10:36:08 · 148 阅读 · 0 评论 -
Codeforces Beta Round #27 (Codeforces format, Div. 2) E. Number With The Given Amount Of Divisors
题目大意给出一个数nnn,求约数个数为nnn的最小的那个数。时间限制1s数据范围n≤103n\le10^3n≤103题目保证答案≤1018\le10^{18}≤1018题解考虑如何计算一个数的约数个数,假设这个数为p1k1×p2k2×⋯×pmkmp_1^{k_1}\times p_2^{k_2}\times\cdots\times p_m^{k_m}p1k1×p2k2×⋯×pmkm,则它的约数个数就为Πi=1m(ki+1)\displaystyle\Pi_{i=1}^m \p原创 2021-07-22 10:39:57 · 125 阅读 · 0 评论 -
Codeforces 1267 E.Elections
题目大意有nnn名候选人,mmm个投票站,每名候选人的得票总数为每个投票站得票数的和。一名候选人能够当选,当且仅当他的总得票数严格大于其余的所有候选人。现在已知每名候选人在每个投票站的得票情况,每个投票站的得票数不会超过10310^3103。问至少要删掉多少个投票站才能不让第nnn名候选人当选。需要输出具体删掉的投票站,多种方案输入任意一种方案即可。时间限制3s数据范围n,m≤100n,m\le100n,m≤100题解为了不让第nnn位候选人当选,只需要前面的n−1n-1n−1位中的原创 2021-07-22 09:25:48 · 243 阅读 · 0 评论 -
Educational Codeforces Round 71 (Rated for Div. 2) C. Gas Pipeline
题目大意有一数轴,数轴上有n+1n+1n+1个点,分别是0,1,2,⋯ ,n0,1,2,\cdots,n0,1,2,⋯,n。现在用从000往nnn铺水管,水管的高度只能为111或222。在每一个点(0,1,2,⋯ ,n)\pod{0,1,2,\cdots,n}(0,1,2,⋯,n)上,需要柱子支撑水管。水管高度发生改变的位置为12,32,⋯ ,2×n−12\frac{1}{2},\frac{3}{2},\cdots,\frac{2\times n - 1}{2}21,23,⋯,22×n−1。原创 2021-07-20 23:20:18 · 523 阅读 · 0 评论 -
JZOJ5600. 【NOI2018模拟3.26】Arg
Description给出一个长度为 m 的序列 A, 请你求出有多少种 1…n 的排列, 满足 A 是它的一个 LIS.Input第一行两个整数 n,m. 接下来一行 m 个整数, 表示 A.Output一行一个整数表示答案.Sample Input5 3 1 3 4Sample Output11Data Constraint对...原创 2018-03-27 16:39:37 · 450 阅读 · 0 评论 -
JZOJ5620. 【NOI2018模拟4.1】修炼
题目 题解很自然的想法,首先一定会按照didid_i排序。 设fifif_i表示前i个物品,第i个物品一定购买的时候最大的魂力。 转移的时候,就枚举上一个购买的物品j, 计算这一段时间j物品的收益。 fi=fj+(di−dj−1)∗gj+rjfi=fj+(di−dj−1)∗gj+rjf_i=f_j+(d_i-d_j-1)*g_j+r_j 这样子是O(n2)O(n2)O(n^...原创 2018-04-10 21:45:08 · 187 阅读 · 0 评论 -
JZOJ5646. 【NOI2018模拟4.12】染色游戏
题目 题目大意给出aiaia_i,要求从中选择一些aiaia_i出来,可以不选(一定要注意) 使得这些aiaia_i是严格上升。 对于每一段连续的空位,都要付出一些代价。 要求最大化选出来的aiaia_i之和减去总代价。题解一种n2n2n^2的做法, 设fifif_i表示aiaia_i必选的最大答案。 fi=maxfj+(i−j∗(i−j−1)/2+ai(aj<...原创 2018-04-14 22:09:14 · 408 阅读 · 0 评论 -
JZOJ5609. 【NOI2018模拟3.28】Tree
Description给你一颗有 n 个点的树,其中 1 号点为根节点,每个点都有一个权值 vali 你可以从树中选择一些点,注意如果 i 与 j 都被选中且 j 在 i 的子树内,那么必须满足 vali >valj 请你求出最多能同时选出多少个点Input第一行一个正整数 n 下接 n 行,每行两个正整数 vali ,fi ,其中 vali 表示该点权值,fi 表示这...原创 2018-03-29 17:22:15 · 397 阅读 · 0 评论 -
5661. 【GDOI2018Day1模拟4.17】药香沁鼻
题目大意给的一棵以1为根树,每个点有代价wiwiw_i,和价值viviv_i, 一个点能共享价值当且仅当它以及它到1路径上的全部点被选中。 给定最大代价,求最大化价值。题解这是一棵树,每个点都在在它父亲被选中之后才能共享价值, 所以就是树形依赖背包。 先将dfs序求出来, 然后就可以随便dp一下了。code#include <queue>...原创 2018-04-23 11:16:50 · 231 阅读 · 0 评论 -
JZOJ5682. 【GDSOI2018模拟4.22】数字
DescriptionNiroBC姐姐想要创造两个数字x和y,它们需要满足x∨y=T,且Lx≤x≤Rx ,Ly≤y≤Ry,NiroBC姐姐想知道x∧y有多少种可能的不同的取值。若有多组 (x,y)有相同的x∧y的取值,则只算一次。 注: •其中∨表示按位取或,C/C++中写作|,Pascal中写作or。 •其中∧表示按位取与,C/C++中写作&,Pascal中写作and。...原创 2018-04-27 15:12:30 · 693 阅读 · 0 评论 -
JZOJ5192. 【NOI2017模拟7.2】容器
题目大意在一个长度为n的序列里面,一开始全部为0, 要选择k个非空的区间,对这个区间里面的每个位置加1, 最终序列上面的每一个位置都不能大于t, 求有多少种合法的方案。 注意:k个区间是有序的,即[1,1] , [2,2]与[2,2] , [1,1]算两种不同的方案。题解其中t=1的部分分给出了提示, 在这个部分分里面每个位置最多只能被一个区间所覆盖。 对于区间的顺...原创 2018-05-18 21:04:17 · 222 阅读 · 0 评论 -
JZOJ5574. 【NOI2018模拟3.10】占领
题目题目大意第一问:找一个点,从它向外扩散,最少的扩散次数。 第二问:给定两个点,求从这两个点向外扩散的最少次数。题解对于第一问, 很自然的想到一种O(n2)O(n2)O(n^2)的dp 设fifif_i表示从第i个点开始扩散,使整个子树的节点都被占领的最少次数。 转移的时候,就将所有的儿子节点从大到小排序,先向大的扩散。考虑换根, 如果是暴力换根,每次重...原创 2018-03-15 22:18:46 · 170 阅读 · 0 评论 -
agc 013D - Piling Up
Problem StatementJoisino has a lot of red and blue bricks and a large box. She will build a tower of these bricks in the following manner.First, she will pick a total of N bricks and put them into...原创 2018-02-28 21:37:11 · 298 阅读 · 0 评论 -
JZOJ1981. 【2011集训队出题】Digit
Description 在数学课上,小T又被老师发现上课睡觉了。为了向全班同学证明小T刚才没有好好听课,数学老师决定出一道题目刁难一下小T,如果小T答不出,那么…… 情节就按照俗套的路线发展下去了,小T显然无法解决这么复杂的问题,可怜的小T只能向你求助: 题目是这样的: 求一个满足条件的n位数A(不能有前导0),满足它的数字和为s1,并且,A*d的数字和为s2.Inpu原创 2018-01-04 17:19:56 · 346 阅读 · 0 评论 -
JZOJ3626. 【POI2012】polarization
Description今天,Bitotian char Bittard 寄给Byteotian king Byteasar 的信给公众开放了。Bitotia 要求整个Byteotia使用Bit Polarizing Magnet(BPM,字面意思为“位极化磁铁” )。如果使用了,BPM 会令Byteotia 中所有的每条路都变成单向通行。敌人知悉一个非常好的消息,这可以是Byteotia 简陋的基础原创 2018-01-30 21:17:58 · 270 阅读 · 1 评论 -
JZOJ3661. 【SHTSC2014】概率充电器
Description著名的电子产品品牌SHOI刚刚发布了引领世界潮流的下一代电子产品——概率充电器:“采用全新纳米级加工技术,实现元件与导线能否通电完全由真随机数决定!SHOI概率充电器,您生活不可或缺的必需品!能充上电吗?现在就试试看吧!”SHOI概率充电器由n-1条导线连通了n个充电元件。进行充电时,每条导线是否可以导电以概率决定,每一个充电元件自身是否直接进行充电也由概率决定。随后电能可以从原创 2018-01-31 20:41:59 · 233 阅读 · 0 评论 -
BZOJ3507.【CQOI2014】通配符匹配
Description几乎所有操作系统的命令行界面(CLI)中都支持文件名的通配符匹配以方便用户。最常见的通配符有两个,一个 是星号(“*”),可以匹配0个及以上的任意字符:另一个是问号(“?”),可以匹配恰好一个任意字符。 现在需要你编写一个程序,对于给定的文件名列表和一个包含通配符的字符串,判断哪些文件可以被匹配。Input第一行是一个由小写字母和上述通配符组成的字符串。 第二行包含一个整原创 2018-01-09 17:14:45 · 617 阅读 · 0 评论 -
JZOJ3782. 【NOIP2014模拟8.17】组队
Description你的任务是将一群人分到两个队伍中,使得:1、每个人都属于一个队伍。2、每个队伍至少有一个人。3、每个队伍的任意一个人都认识其他人。4、两支队伍的人数尽可能接近。这个任务可能有多组解,你可以输出任意一种。注意:认识是单向的且没有传递性。Input第一行为一个整数N,表示总人数。接下来为N行,每行多个整数x,第i + 1行描述编号为i的人认识x。每行以 0 结尾。Output如果无原创 2018-02-02 22:17:05 · 204 阅读 · 0 评论 -
JZOJ1292. 公牛和母牛
Description FJ想N头牛(公牛或母牛)排成一排接受胡总的检阅,经研究发现公牛特别好斗,如果两头公牛离得太近就会发生冲突,通过观察两头公牛之间至少要有K(0<=K<=N)头母牛才能避免冲突。 FJ想请你帮忙计算一共有多少种放置方法,注意所有的公牛被认为是一样的,母牛也是,所以两种放置方法被认为不同当且仅当某些位置牛的种类不同。Input 第一行:两个空格隔开的整数N(N<=100原创 2018-02-08 11:31:29 · 587 阅读 · 0 评论 -
JZOJ3845. 【NOIP2014八校联考第1场第1试9.20】简单题(simple)
Descriptiondzy 手上有一张n 个点m 条边的联通无向图,仙人掌是一张每条边最多在一个简单环内的联通无向图。他想求这个无向图的生成仙人掌中最多有多少条边。 但是dzy 觉得这个问题太简单了,于是他定义了“美丽的生成仙人掌”,即在一个生成仙人掌中如果满足对于任意编号为i,j(i < j) 的两点,存在一条它们之间的简单路径上面有j-i+1 个点,则这个仙人掌是美丽的。 他现在想要知道这原创 2018-02-08 11:54:58 · 324 阅读 · 0 评论 -
JZOJ3847. 【NOIP2014八校联考第1场第2试9.21】都市环游(travel)
Description因为SJY干的奇怪事情过多,SJY收到了休假的通知,于是他准备在都市间来回旅游。SJY有一辆车子,一开始行驶性能为0,每过1时间行驶性能就会提升1点。每个城市的道路都有性能要求。SJY一共有t时间休息,一开始他位于1号城市(保证1号城市道路要求为0),他希望在n号城市结束旅程。每次穿过一条城市间的路会花费1时间,当然他也可以停留在一个城市不动而花费1时间。当且仅当车子的行驶性能原创 2018-02-08 12:06:13 · 275 阅读 · 0 评论 -
JZOJ4389. 【GDOI2016模拟3.15】圈地游戏
题解题目已经告诉了如何判断一个点是否在一个多边形里面, 而关于自交的问题,就将它当作没有自交就好了。看到数据范围,特殊点只有很少,考虑如何设状态, 用fx,y,sfx,y,s表示当前走的点(x,y),特殊格子上面经过的线的奇偶性的2进制状态, 有了这个状态就可以bfs了。code#include <queue>#include <cst...原创 2018-07-20 16:41:32 · 253 阅读 · 0 评论 -
JZOJ5813. 【NOIP提高A组模拟2018.8.14】 计算
题解设X=(x1,x2,...,x2m)X=(x1,x2,...,x2m)X=(x_1,x_2,...,x_{2m}) 假设里面的xixix_i都是n的约数, 设F(X)表示X里面数的乘积和。 对于的,设X′=(n/x1,n/x2,...,n/x2m)X′=(n/x1,n/x2,...,n/x2m)X'=(n/x_1,n/x_2,...,n/x_{2m}) 当F(X)<nmn...原创 2018-08-14 20:37:59 · 226 阅读 · 0 评论 -
JZOJ5219. B
题解可以设fi,jf_{i,j}fi,j表示用一个1到i的排列,且满足题目给出序列的前i-1项,最后一项为j的方案数,考虑如何转移,枚举当前位置填的数是k,为了使得之前的i-1的全排列变为一个i的全排列,可以让原来排列里面所有大于等于k的数都+1,这样就可以变成i的排列,而且还知道最后一个位置。维护一个前缀和就可以n方解决。#include <cstdio>#includ...原创 2018-12-04 15:47:09 · 1074 阅读 · 0 评论 -
JZOJ5957. 【NOIP2018模拟11.7A组】scarborough fair
Data Constraint对于 15% 的数据,满足 m ≤ 21。对于另外 35% 的数据,满足 n ≤ 11。对于 80% 的数据 (包括以上 50% 的数据),满足 n ≤ 14。对于 100% 的数据,满足 n ≤ 17。题解看到数据范围,就可以连续到状态压缩。很显然每个联通块对答案的贡献都是独立的,所以只需要知道每个联通块的连通概率就可以了。设fsf_sfs表示s...原创 2018-11-07 22:31:41 · 300 阅读 · 0 评论 -
JZOJ5955. 【NOIP2018模拟11.7A组】strategy
题解这题有n种办法解决,dp显然可以,设fi,jf_{i,j}fi,j表示前i个点,用了j次进攻的最优答案。同理维护一个后缀的,询问就枚举前面多少进攻,后面多少次进攻,加起来就是答案。贪心也是可以,按照防御代价减去攻击代价从大到小排序,显然最优的是选前k个,有负数的不能选。code#include<cstdio>#include<cstring>...原创 2018-11-07 22:04:58 · 186 阅读 · 0 评论 -
JZOJ5944. 【NOIP2018模拟11.01】信标
数据范围对于前 20% 的数据, n ≤ 10;对于前 45% 的数据, n ≤ 40, 树的形态随机;对于前 70% 的数据, n ≤ 5000;对于另 5% 的数据, 不存在一个村庄连接着 3 条或以上的道路;对于 100% 的数据, 1 ≤ n ≤ 1000000, 1 ≤ u, v ≤ n, 保证数据合法.题解考虑如何放标记是合法的,很显然,对手在信标两两间的路径的并集的...原创 2018-11-01 16:54:52 · 251 阅读 · 0 评论 -
JZOJ5939. 【NOIP2018模拟10.30】阻击计划
Description最近,小J发现小R和小Z之间的关系十分密切,心中十分嫉妒,为了拆散他们,小J经常扰乱他们一起玩耍的计划。问题描述小R和小Z打算在这个周末一起骑车在G国的城市看风景,G国的城市有n个城市,m条双向道路,这m条边中,有n-1条道路已经铺设完毕,任意两个城市之间都有一条由铺设好的道路组成的路径。由于G国经常收到周围强大力场的影响,G国的每个城市至多是十条道路的端点(包括铺设...原创 2018-10-31 22:19:20 · 198 阅读 · 0 评论 -
JZOJ5935. 【NOIP2018模拟10.29】小凯学数学
Description由于小凯上次在找零问题上的疑惑,给大家在考场上带来了很大的麻烦,他决心好好学习数学本次他挑选了位运算专题进行研究 他发明了一种叫做“小凯运算”的运算符:a$b =( (a&b) + (a|b) )>>1他为了练习,写了n个数在黑板上(记为a[i]) 并对任意相邻两个数进行“小凯运算”,把两数擦去,把结果留下 这样操作n-1次之后就只剩了1个数,求这...原创 2018-10-31 15:27:35 · 235 阅读 · 0 评论 -
JZOJ5913. 【NOIP2018模拟10.19】林下风气
Description里口福因有林下风气,带领全国各地高校掀起了一股AK风,大家都十分痴迷于AK。里口福为了打击大家的自信心,出了一道自以为十分困难的题目。里口福有一棵树,第i个节点上有点权ai,他的问题就是这棵树中有多少个不同的连通块满足连通块的最大值与最小值之差=k,两个连通块不同当且仅当至少存在一个节点在一个连通块中出现而另一个连通块中没有出现。痴迷于AK的你马上接下这道题目,在里口福...原创 2018-10-21 11:48:44 · 432 阅读 · 0 评论 -
JZOJ5925. 【NOIP2018模拟10.25】naive 的瓶子
Description众所周知,小 naive 有 n (n≤300)个瓶子,它们在桌子上排成一排。第 i 个瓶子的颜色为 ci,每个瓶子都有灵性,每次操作可以选择两个相邻的瓶子,消耗他们颜色的数值乘积的代价将其中一个瓶子的颜色变成另一个瓶子的颜色。现在 naive 要让所以瓶子的颜色都一样,操作次数不限,但要使得操作的总代价最小。题解颜色的数量很少,可以考虑枚举最后变成哪一种颜色。对于...原创 2018-10-25 16:50:14 · 312 阅读 · 0 评论 -
JZOJ5907. 【NOIP2018模拟10.16】轻功(qinggong)
Description题目背景:尊者神高达进入了基三的世界,作为一个 mmorpg 做任务是必不可少的,然而跑地图却令人十分不爽。好在基三可以使用轻功,但是尊者神高达有些手残,他决定用梅花桩练习轻功。题目描述:一共有 n 个木桩,要求从起点(0)开始,经过所有梅花桩,恰好到达终点 n,尊者神高达一共会 k 种门派的轻功,不同门派的轻功经过的梅花桩数不同,花费时间也不同。但是尊者神高达一次只...原创 2018-10-17 22:16:43 · 160 阅读 · 0 评论 -
JZOJ5906. 【NOIP2018模拟10.15】传送门 (portal)
Description8102年,Normalgod在GLaDOS的帮助下,研制出了传送枪。但GLaDOS想把传送枪据为己有,于是把Normalgod扔进了一间实验室。这间实验室是一棵有n个节点的树。现在Normalgod在一号节点,出口也在一号节点,但为了打开它,必须经过每一个节点按下每个节点的开关,出口才能打开。GLaDOS为了杀死Normalgod,开始在实验室里释放毒气,因此Normal...原创 2018-10-17 22:13:17 · 172 阅读 · 0 评论 -
JZOJ5873.【NOIP2018提高组模拟9.18】 小p的属性
题解有一种很显然的dp方式,fi,jf_{i,j}fi,j表示在a=i,b=j的情况下,最大可以得到的分数,gi,jg_{i,j}gi,j表示在a=i,b=j的情况下,在一天之内得到的分数。fi,jf_{i,j}fi,j就从fi−1,j和fi,j−1f_{i-1,j} 和 f_{i,j-1}fi−1,j和fi,j−1转移过来,表示这一天选择a+1还是b+1。对于每一个(i,...原创 2018-09-23 10:11:06 · 541 阅读 · 0 评论 -
JZOJ5874. 【NOIP2018提高组模拟9.18】小p的决心
题解考虑哪一些点可以变为相邻的儿子节点,就是某个点以及它的右链,和这个点父亲的下一个儿子以及它的左链,这里面的点都可两两相互成为相邻的叶子节点。于是就开始dp,设fif_ifi表示最后一个叶子节点在i的时候是最大值,考虑如何转移,很显然,先找出两条链来,这个过程类似求lca的过程。然后维护一个前缀,讨论新构成的链的最大值在哪一条链上面。code#include <i...原创 2018-09-23 15:16:45 · 360 阅读 · 0 评论 -
JZOJ5843. 【省选模拟2018.8.23】b
Description给定 n 个正整数序列,每个序列长度为m。 选择至少 1 个序列,在每个被选择的序列中选择一个元素,求出所有被选择的元素的 gcd。 求所有方案的结果之和,答案对 1e9+7 取模。两种方案不同,当且仅当存在至少一个元素,在一种方案中被选择,在另一种中没有。Input第一行,两个正整数n,m。 接下来n 行,每行m 个正整数,第i 行代表序列。O...原创 2018-08-23 21:23:36 · 323 阅读 · 0 评论 -
JZOJ5805. 【2018.08.12提高A组模拟】 简单的期望
Description从前有个变量 x,它的初始值已给出。 你会依次执行 n 次操作,每次操作有 p% 的概率令 x = x × 2,(100 − p)% 的概率令 x = x + 1。 假设最后得到的值为 w,令 d 为 w 的质因数分解中 2 的次数,求 d 的期望。Input从文件 exp.in 中读入数据。 第一行三个整数 x, n, p,含义见题目描述。Ou...原创 2018-08-13 21:42:32 · 842 阅读 · 0 评论