04 2019 档案

摘要:洛谷P2622 关灯问题II 关灯问题——状态压缩经典 所谓状态压缩 就是将问题可能遇到的每一个状态用一个唯一的二进制数表示 其复杂度一般都是指数级的 这也注定了状压类的题数据规模都不会太大 此题中我们以1表示开灯状态,0表示关灯状态 这样我们可以以一个长度为n的二进制数唯一的表示每个状态 接着就可 阅读全文
posted @ 2019-04-24 16:35 Rain_day 阅读(231) 评论(0) 推荐(0)
摘要:F 小帆帆走迷宫(简单dp) 一道其实不是很难的四维dp 但是在考场上因为只记录转弯次数没记录方向没写出来 看题发现 其实这道题就是二维数塔+转向费的dp 所以我们用dp[n][n][k][m]来记录状态 前两维n n 代表当前坐标 k记录转弯几次 m记录方向 当m=0 记没改变方向 当m=1 为改 阅读全文
posted @ 2019-04-21 20:12 Rain_day 阅读(235) 评论(1) 推荐(0)
摘要:ios::sync_with_stdio(false); 阅读全文
posted @ 2019-04-17 18:36 Rain_day 阅读(113) 评论(0) 推荐(0)
摘要:P1006 传纸条 我的第一道多维dp 我第一眼看到这道题 就知道不会 因为从来没见过 后来看了神仙的题解 恍然大悟 然而自己写的时候还是有bug(逃 这里给出一个三维数组的解法(oi爷太强了 首先,要找来回两条路径,这样考虑太麻烦,把它转化为两个人从1,1这点一起走,一直走到n,m这点所经过的路径 阅读全文
posted @ 2019-04-16 18:50 Rain_day 阅读(211) 评论(0) 推荐(0)
摘要:P1280 尼克的任务 线性dp 其实看到这道题第一眼看成了贪心 其实是个很奇怪的线性dp dp[i]代表在i到n时间内的最长休息时间 先放状态转移方程这里的list[num].t是指第num个工作的起始时间 由题意可知 只有空闲时间有任务开始 才会去做 所以我们枚举每个这段时间的任务 看那个能够获 阅读全文
posted @ 2019-04-15 18:37 Rain_day 阅读(214) 评论(0) 推荐(0)
摘要:有时尽管状态找好了,转移方程的想好了,但时间复杂度比较大,需要用数据结构进行优化。常见的优化有二进制优化、单调队列优化、斜率优化、四边形不等式优化等。 等待 阅读全文
posted @ 2019-04-11 21:13 Rain_day 阅读(135) 评论(0) 推荐(0)
摘要:等待学习 阅读全文
posted @ 2019-04-11 21:12 Rain_day 阅读(168) 评论(0) 推荐(0)
摘要:占坑等补 阅读全文
posted @ 2019-04-11 21:10 Rain_day 阅读(55) 评论(0) 推荐(0)
摘要:占坑等补 阅读全文
posted @ 2019-04-11 21:10 Rain_day 阅读(73) 评论(0) 推荐(0)
摘要:等待补 阅读全文
posted @ 2019-04-11 21:09 Rain_day 阅读(49) 评论(0) 推荐(0)
摘要:区间dp模板题 P1880 [NOI1995]石子合并 先上状态转移方程 其中d(i,j)意义为从第i堆加到第j堆的个数和 mindp[i][j]代表第i堆到第j堆的合并最小分数 maxdp[i][j]代表第i堆到第j堆的合并最大分数 到了这里 其实这道题就应该迎刃而解了 但是我还是卡了很久 原因是 阅读全文
posted @ 2019-04-11 21:08 Rain_day 阅读(141) 评论(0) 推荐(0)
摘要:完全背包讲解 裸题洛谷P1616疯狂的采药 本题为采药进化版 和采药的区别为 每种药材有无数多个 且可以多次采摘同种药材 那么很容易想到完全背包 下面放ac代码 那么 整个代码精髓如下 其中rep为for(int i=1;i<=m;i++) (我比较懒 用define重新定义了下) 那么我们可以看到 阅读全文
posted @ 2019-04-11 11:25 Rain_day 阅读(356) 评论(0) 推荐(0)
摘要:nlogn求解最长上升子序列 先讲解两个函数 lower_bound()和upper_bound() 使用规范为 lower_bound(数组名+k,数组名+k+n,x,cmp)代表在数组[k]到数组[k+n]中查找x 并可以使用重载重新定义cmp upper_bound(数组名+k,数组名+k+n 阅读全文
posted @ 2019-04-10 20:34 Rain_day 阅读(1010) 评论(0) 推荐(0)
摘要:P1060 开心的金明(基础背包) 这道题是01背包裸题 超级难 首先讲解一下01背包 01背包的基本模型为 已经拥有的资本(即背包容量) 可以获得物品的价值和代价(即物品的价值和体积) 所以我们用最基本的无任何优化的代码实现一下 可以来用knapsack来模拟样例中的过程(一个01背包小插件)地址 阅读全文
posted @ 2019-04-08 13:20 Rain_day 阅读(283) 评论(0) 推荐(0)
摘要:For everyone and i “有压力我才会出彩” “生活就是到处碰壁,对吧。” “如果你在意别人的看法,你就一事无成.” “你的努力不是为了让所有人都喜欢你。你的努力是为了让你更喜欢自己。” “正因为不会发生,人们才称它为奇迹” “你听我说,你是输了几次,但你还会东山再起的” #inclu 阅读全文
posted @ 2019-04-07 18:03 Rain_day 阅读(1470) 评论(0) 推荐(0)