Codeforces - tag::dp 大合集 [占坑 6 / inf]
Gym - 100753J
某国家仅有金币和银币两种货币,起汇率为g,纪念品市场有n个商人和商品,商人结帐只用银币,并且把一堆银币装在袋子里,分为三种类型,分别按向下/向上/四舍五入取整(其中向上的优先使用银币交易),你要用c个金币买尽量多纪念品,输出最多纪念品数
细节较多的二维背包水题,差点没把我气死
注意不要把第三维改成纪念品数而答案为最多保留的银币数
不然无法处理generous的情况
https://paste.ubuntu.com/p/WNCSWc9rfs/
407B
要求从节点1走到节点n+1,每个节点有2个出口,当奇数次经过\(i\)时走到\(p_i,p_i≤i\)节点,偶数次经过时走到\(i+1\)节点,求走过的步数模1e9+7
设1到i+1的步数:\(dp[i+1]=dp[i]+1+dp[i]-dp[p[i]]+1\)(对于i分为奇偶两次遍历)
设到i+1的步数:\(dp[i]=1+dp[p[i]]+dp[p[i]+1]+...+dp[i-1]+1\)(到达i+1时,对于1...i都是偶数步)
设\(dp[i][j]:\) \(i\)到\(j\)的步数:\(dp[i][j]=dp[i][j-1]+dp[p[j-1]][j-1]+1\)(对于j-1,i到j-1为奇数步,p[j-1]到j-1位偶数步)
注意p[i]可等于i因此i=j时也算1步
5C
求最长的括号匹配和对应的个数
栈+DP
\(l\)为当前匹配下标,\(dp\)为最早匹配下标
https://paste.ubuntu.com/p/xJY6FBgy9h/
340D
给定一个序列,对其进行冒泡排序,每次交换都会两个元素连边形成冒泡排序图,求该图中的最大点独立集
看不出来orz,%了题解后感觉十分不可思议orz
https://www.cnblogs.com/hehe54321/p/cf-340d.html
814C
给定一个长度1k5的串,2e5次询问最多修改k个数求字符ch的最大连续区间
设\(dp[i][j][k]\):从\(i\)到\(j\)把字符全部变为\(k\)的最小代价
记\(ans[i][k]\):最多修改\(i\)次的最长连续\(k\)字符区间的递推答案,注意是最多,不是exactly
那么可以在\(O(26n^3)\)以内完成预处理
https://paste.ubuntu.com/p/mVFPtfBCzs/
607B
给定一个数组a[1...n],每次操作可消除一个回文子串,求最少操作次数使得原串被消除
区间dp
https://paste.ubuntu.com/p/KvhRwWZCGG/
660C
(然而这是一道二分题目)
题意:给定\(a[1...n]\)的01串,至多可以使k个0变为1,求最长的连续全1串的长度及方案
维护sum[i]:前i项中0的个数
那么每次可以通过sum的单调性二分出最远的可连续更改位置
注意判断条件
https://paste.ubuntu.com/p/R92nXsk9Hv/
812B(水)
题意:n层楼每层m个房间2个楼梯,每一层关灯后才可以上再高一层,问灯全关的最少步数
对楼梯记录来自下层哪个楼梯的最优代价即可,有点细节(WA了你就知道了
https://paste.ubuntu.com/p/2ThySDZF62/
766C
题意:给出一个串和每个字符允许存在的最多次数,求分割合法子串方案数/可能的最长子串长度/可能的最少的子串数
枚举分割的子串既要求每个字符满足a[str[x]-'a']<=i-j+1
方案数只需加上之前分割出的段的方案数
https://paste.ubuntu.com/p/k2GscFnfzC/
270D
题意:n个实数点m个种类,求最少移动多少个点使得m-1个隔板中间都是同一种类并且种类是升序的
最多不移动的点就是LIS
n-LIS就是所求
505C
节省空间
557C
629C
题意:定义合法串,串中只有a和b,前缀和满足\(prea_i≥preb_i\),且最后一位\(prea=preb\),现在给定了长为m的串,要求构造出p+q,使p+s+q为合法串,求构造的方案数,n≤100000,n-m≤2000
定义\(dp[i][j]\):前\(i\)位\(prea_i-preb_i=j\)的方案数,转移方程为\(dp[i][j]=dp[i-1][j-1]+dp[i-1][j+1]\)
此时\(dp[i][-j]=dp[i][j]\)
预处理出n-m的所有方案
对于p串,设包含\(prea',preb'\)要求随时满足\(prea'+prea-preb'-preb≥0\),既\(prea'-preb'≥min(prea_i-preb_i)\)
在满足p+q在任意位置均合法的情况下,对于q串,设包含\(prea'',preb''\),要求满足\(prea'+prea+prea''-preb'-preb-preb''=0\),既\(prea''-preb''=prea-preb+prea'-preb'\)
注意枚举时长度的限制
https://paste.ubuntu.com/p/fPRybn45S2/
ZOJ - 4027(乱入)
待做/不想做:1005D/219C/798C/919D
probabilities
839C
题意:求从一棵树的根随机跑到叶子的期望长度
对叶子设\(dp[u]=0\),其余部分\(dp[u]=1+\sum dp[v]/cnt\)
453A
题意: 有一个m面均匀骰子,求抛n次的最大面的期望数值
每次抛都是独立的,可看作n个骰子(然并卵),对于n个骰子单次抛出最大面为1的概率\(\frac{1}{m^n}\),最大面为2的概率为\((\frac{2}{m})^n-(\frac{1}{m})^n\),最大面为\(i\)的概率为\((\frac{i}{m})^n-(\frac{i-1}{m})^n\),每次乘上\(i\)便得到期望
312B
题意:Alice和Bob在玩游戏,Alice的单次胜率为\(a/b\),Bob的位\(c/d\),Alice先手,求Alice获胜的概率
第一次获胜 \(a/b\)
第三次获胜 \((1-a/b)*(1-c/d)*a/b\)
第五次获胜 \((1-a/b)*(1-c/d)*(1-a/b)*(1-c/d)*a/c=[(1-a/b)(1-c/d)]^2*a/b\)
令\(p=a/b,q=(1-a/b)(1-c/d)\),答案为\(p\sum_{i=0}^{∞} q^i=p*(1/(1-q))\)
Codeforces - tag::dp 大合集 [占坑 6 / inf]的更多相关文章
- Codeforces - tag::graphs 大合集 [占坑]
520B 给定初始n和目标m,存在两种操作\(-1\)和\(×2\),要求最少操作次数 无脑解法是BFS,不能解决稍大的规模 当n>m时,输出n-m 否则逆向处理,转换为m到n的最小操作次数,存 ...
- Codeforces - tag::flows 大合集 [完坑 x14]
589F 题意:给出n个时间区间,每个区间挑定长的非连续区间,求不同个区间不存在时间冲突的最大定长,输出乘上n 二分图模型+二分长度,左顶点集为区间编号,右顶点集为时间编号(1...10000),汇点 ...
- Codeforces - tag::data structures 大合集 [占坑 25 / 0x3f3f3f3f]
371D 小盘子不断嵌套与大盘子,最后与地面相连,往里面灌水,溢出部分会往下面流,求每次操作时当前的盘子的容量 其实这道题是期末考前就做好了的.. 链式结构考虑并查集,然后没了(求大佬解释第一个T的点 ...
- HDU - tag :: Multi-University 大合集
说明:按无序更新,只更(会)水题 4632 题意:求字符串的回文子[序列]个数 区间DP,设\(dp[i][j]\)为\([i,j]\)范围内的回文子序列个数, 由容斥定理可得\(dp[i][j]=d ...
- [题解+总结]动态规划大合集II
1.前言 大合集总共14道题,出自江哥之手(这就没什么好戏了),做得让人花枝乱颤.虽说大部分是NOIP难度,也有简单的几道题目,但是还是做的很辛苦,有几道题几乎没思路,下面一道道边看边分析一下. 2. ...
- [题解+总结]NOIP动态规划大合集
1.前言 NOIP2003-2014动态规划题目大合集,有简单的也有难的(对于我这种动态规划盲当然存在难的),今天就把这些东西归纳一下,做一个比较全面的总结,方便对动态规划有一个更深的理解. 2.NO ...
- 动态规划大合集II
1.前言 大合集总共14道题,出自江哥之手(这就没什么好戏了),做得让人花枝乱颤.虽说大部分是NOIP难度,也有简单的几道题目,但是还是做的很辛苦,有几道题几乎没思路,下面一道道边看边分析一下. 2. ...
- NOIP动态规划大合集
1.前言 NOIP2003-2014动态规划题目大合集,有简单的也有难的(对于我这种动态规划盲当然存在难的),今天就把这些东西归纳一下,做一个比较全面的总结,方便对动态规划有一个更深的理解. 2.NO ...
- ubuntu 18.04 搭建flask服务器(大合集,个人实操)
ubuntu 18.04 搭建flask服务器(大合集) Ubuntu python flask 服务器 本次使用的Ubuntu版本为:Ubuntu 18.04.5 LTS (GNU/Linux 4. ...
随机推荐
- Spring.net init-method destroy-method
<object id="exampleInitObject" type="Examples.ExampleObject" init-method=&quo ...
- requests+正则表达式 爬取 妹子图
做了一个爬取妹子图某张索引页面的爬虫,主要用request和正则表达式. 感谢 崔庆才大神的 爬虫教学视频 和 gitbook: B站:https://www.bilibili.com/video/a ...
- Perl 学习笔记-高级控制结构
1.unless控制结构 类似于独立的else语句; 要么条件为真, 要么执行语句块内的代码; unless(<condition>){code...;} 等价于 if(<con ...
- Python基于VS2013 开发环境搭建 Hello World 10分钟搞定
1.先下载Python 安装 Next ->安装完成 2.以前安装过VS2013 打开VS2013 文件->新建项目 (此时如果没有Python Application,请点击里面的安装插 ...
- 网络编程释疑之:单台服务器上的并发TCP连接数可以有多少
曾几何时我们还在寻求网络编程中C10K问题的解决方案,但是现在从硬件和操作系统支持来看单台服务器支持上万并发连接已经没有多少挑战性了.我们先假设单台服务器最多只能支持万级并发连接,其实对绝大多数应用来 ...
- .NET基础 (06)面向对象的实现
面向对象的实现1 C#中类可以有多个父类.可以实现多个接口吗2 简述C#中重写.重载和隐藏的概念3 为什么在构造方法中调用虚方法会导致问题4 在C#中如何声明一个类不能被继承 面向对象的实现 1 C# ...
- Mysql企业实战
==========================业务垂直分割:1>介绍说明: 随着公司的业务规模扩展,DBA需要根据企业数据业务进行切割,垂直切割又称为纵向切割,垂直数据切割是根据企业网站业 ...
- delphi实现截全屏功能
procedure TForm1.Button10Click(Sender: TObject);var bmp: TBitmap; can: TCanvas; dc: HDC; Image1: TIm ...
- Mathcad操作tips:2D绘图
1. 直接输入算式进行绘图(QuickPlot) 2. 先定义函数,再利用函数绘制多个曲线.一张图最多支持16条曲线.留意“,”的用法. 3. 利用空格键和","在现有绘图上增加新 ...
- First App on Phonegap | Cordova
Phonegap简介 PhoneGap是一能够让你用普通的web技术编写出能够轻松调用api接口和进入应用商店的 html5应用开发平台,是唯一支持7个平台的开源移动框架. 优势: 1.兼容性:多平台 ...