随笔分类 - dp(动态规划)
摘要:A. QAQ time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output "QAQ" is a word to denote an expre
阅读全文
摘要:Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 14628 Accepted: 5878 Description The cows, as you know, have no fingers or th
阅读全文
摘要:分析:非常神的一道题.迭代加深搜索+rand可以骗得20分.状压n的话只有24分,必须对问题进行一个转化. 在爆搜的过程中,可以利用差分来快速地对一个区间进行修改,把一般的差分改成异或型的差分: b[i] = a[i] ^ a[i + 1],每次翻转操作实际上就是在b[l-1]取反,b[r]上取反.
阅读全文
摘要:分析:显然的,树形dp,状态也很好想到:f[i][j]表示以i为根的子树收集到j个果子的方案数.转移的话就相当于是背包问题,每个子节点可以选或不选.如果不选子节点k的话,那么以k为根的子树的边无论断不断都没关系,贡献就是f[i][j] * 2^(size[k]).如果选的话,枚举一下收集到多少个果子
阅读全文
摘要:分析:比较难想的一道dp题.要想补兵的数量最多,最后每个小兵的血量肯定是呈一个阶梯状的:i,i+1,i+2......i+k.那么记录一下每个血量i离它最近的小兵的血量是多少,记作cur[i].那么把这个小兵砍成i就需要砍cur[i] - i次,显然一轮是不可能有这么多次的,只有前面的血量不去砍,留
阅读全文
摘要:分析:举个例子就能发现:偶数位上的数都必须是0,奇数位上的数可以取0~k-1,这就是一个标准的数位dp了. 这编译器......数组越界了竟然不报错.
阅读全文
摘要:分析:博弈论. 单个博弈通用的解法是dp,设f[i][j][0]为如果在(i,j)Yuri先走能否获胜,f[i][j][1]为Chito能否获胜,对应的就是必胜态和必败态的转移.如果f[i-1][j][1],f[i-1][j-1][1],f[i][j-1][1]都为1,那么f[i][j][0]为0,
阅读全文
摘要:分析:好神的一道题啊.对每棵树建个图跑一下floyd可以有40分,想要打出正解就得对树有比较深的认识了. 每次新生成一棵树都是由两棵树i,j拼成的,答案为原来两棵树的答案和+i中每个点到j中每个点的距离和.显然这个距离和不能直接算,涉及到求整体的值,通常考虑每条边的贡献.设i,j两棵树的连接点为p,
阅读全文
摘要:分析:暴力挺好打的,对于前30%的数据神搜,hi相同的数据将所有的建筑按照c从小到大排序,看最多能跳多少,ci=0的数据将所有的建筑按照h从小到大排序,枚举起点和终点,看能否跳这么多,取个max就可以了.这样70分就到手了. 部分分的提示还是比较明显的,要消除一个参数的影响,那么就按照h从小到大排序
阅读全文
摘要:题目描述LYK在学习dp,有一天它看到了一道关于dp的题目。这个题目是这个样子的:一开始有n个数,一段区间的价值为这段区间相同的数的对数。我们想把这n个数切成恰好k段区间。之后这n个数的价值为这k段区间的价值和。我们想让最终这n个数的价值和尽可能少。例如6个数1,1,2,2,3,3要切成3段,一个好
阅读全文
摘要:题目描述 LYK做了一个梦。 这个梦是这样的,LYK是一个财主,有一个仆人在为LYK打工。 不幸的是,又到了月末,到了给仆人发工资的时间。但这个仆人很奇怪,它可能想要至少x块钱,并且当LYK凑不出恰好x块钱时,它不会找零钱给LYK。 LYK知道这个x一定是1~n之间的正整数。当然抠门的LYK只想付给
阅读全文
摘要:【问题描述】有4个长度为N的数组a,b,c,d。现在需要你选择N个数构成数组e,数组e满足a[i]≤e[i]≤b[i]以及 并且使得 最大。【输入格式】输入文件名为abcd.in。输入文件共 N+1 行。第 1 行包含1个正整数N。第 i+1 行包含4个整数a[i],b[i],c[i],d[i]。【
阅读全文
摘要:分析:这道题难度和天天爱跑步差不了多少啊......裸的暴力只有10分,最好大的还是那个5%的数据,不过这也才15分,比天天爱跑步的暴力分不知道少到哪里去了. 正解是dp,毕竟要求方案数嘛,但是这个dp非常不好想.设f[i][j]表示i到j个数的回文子序列的个数.f[i][j]可以从f[i][j-1
阅读全文
摘要:【问题描述】 平面上有N条直线,用方程Aix + Biy +Ci =0表示。这些直线没有三线共点的。现在要你计算出用这些直线可以构造出多少三角形? 输入: 第1行:一个整数N(1 ≤ N≤ 300000)。 下面N行:每行3个整数:Ai, Bi 和Ci,表示对应直线方程的系数。不超过10^9. 对于
阅读全文
摘要:问题描小空正在玩一个叫做捡金币的游戏。游戏在一个被划分成 n行 n列的网格状场地中进行。每一个格子中都放着若干金币,并且金币的数量会随着时间而不断变化。 小空的任务就是在网格中移动,拾取尽量多的金币。 并且,小空还有一个特殊技能“闪现”, 能帮助她在网格间快速移动。捡金币游戏的具体规则如下:在每一秒
阅读全文
摘要:【问题背景】zhx 和妹子们玩数数游戏。【问题描述】仅包含 4 或 7 的数被称为幸运数。一个序列的子序列被定义为从序列中删去若干个数, 剩下的数组成的新序列。两个子序列被定义为不同的当且仅当其中的元素在原始序列中的下标的集合不相等。对于一个长度为 N的序列,共有 2^N个不同的子序列。(包含一个空
阅读全文
摘要:【问题描述】 有一种圆桌游戏是这样进行的:n个人围着圆桌坐成一圈,按顺时针顺序依次标号为1号至n号。对1<i<n的i来说,i号的左边是i+1号,右边是i-1号。1号的右边是n号,n号的左边是1号。每一轮游戏时,主持人指定一个还坐在桌边的人(假设是i号),让他向坐在他左边的人(假设是j号)发起挑战,如
阅读全文
摘要:分析:对于第一个点,答案为26^n - 25^n,这个很好想.另外30%的点因为n <= 5,所以可以直接暴力搜索. 数学方法不是很好处理,考虑dp,设f[i][j]为前i位匹配到危险串第j位的方案数,枚举第i+1位上的字母k,f[i][j]可以转移到f[i+1][危险串中下一个k出现的位置],危险
阅读全文
摘要:分析:比较难的一道题,看到要求方案数,又是在一棵树上,自然就想起了树形dp.状态该怎么表示呢?首先肯定有一维状态表示以i为根的子树,考虑到i有没有匹配对答案也是有影响的,自然而然状态就出来了:f[i][0/1]表示以i为根的子树中,i取或不取的最大匹配.因为要求方案数,再开一个数组g[i][0/1]
阅读全文

浙公网安备 33010602011771号