dp
文章平均质量分 77
acm er
走向美好未来的路注定是孤独的,但我不会放弃
展开
-
牛客网2020跨年赛 B题(两种解法)
这是题目链接题目传送门,感兴趣的小伙伴可以点击进去提交。题目大致意思就是给你两个序列a和b,元素的个数均为n,且b中元素属于[0,100],a中元素属于[0,100000],可以将a[i]进行两种操作,a[i]-b[i],或者a[i]+b[i],或者不变,然后的到一个新的序列a^,最终目的是使得,新的序列和%y的值最大,y属于[0,100]。分析:这题一看y的数据范围,和题目的限制条件第一时间直接想到dp,第一种很容易想到的就是二维dp[i][j],代表前i个元素可以组成为j的情况是否成立。这样我们就原创 2021-01-02 00:22:52 · 226 阅读 · 1 评论 -
蓝桥杯2020模拟赛:满足条件的序列的数量(记忆化搜索)
【问题描述】小明想知道,满足以下条件的正整数序列的数量:第一项为 n;第二项不超过 n;从第三项开始,每一项小于前两项的差的绝对值。请计算,对于给定的 n,有多少种满足条件的序列。【输入格式】输入一行包含一个整数 n。【输出格式】输出一个整数,表示答案。答案可能很大,请输出答案除以10000的余数。【样例输入】4【样例输出】7【样例说明】以下是满足条件的序列:4 14 1 14 1 24 24 2 14 34 4【评测用例规模与约定】对于 20% 的评测用例原创 2020-09-22 22:07:50 · 331 阅读 · 0 评论 -
二维前缀和+二分(牛客小白月赛26)
这里附上题目链接供大家参考:传送门大致题目意思就是给你一个字母矩阵,让你一次对于每个矩阵的定点,求出以该顶点为左上角的最大子方阵,要求就是方阵内部每个字母的总数都不可以超过一个输入值k,对于矩阵范围就是最大500500,name考虑字母一共是26个,如果直接暴力模拟方阵长度肯定超时,那么我们考虑到这个边长一定类似于单调的函数曲线,所以我们可以二分,时间复杂度50050026log(1e9),最大边长就是1e9,所以二分就肯定不会超时,二分确实是个好东西(偷笑哈哈),这里对于每个边界范围内的字母数量我们就原创 2020-09-07 21:17:49 · 97 阅读 · 0 评论 -
树形DP(校赛A题)
这是题目链接:传送门题面很好理解就是给你一颗树,给你每个节点的权值和每条边的权值,让你求出对于所有路径,它的起始节点权值加上边权最大值。这题一看就是树形dp走一波,原谅我以前做的少,唉,没写出来,先来说这样一道题,在这提基础上我们求出所有点权和边权加在一起的结果:这题的dp方程是这样的,我们假设dp[i[表示以i为根节点的树的最大权值和,且包括当前节点啊,那么我们的转移方程就是dp[i[=max(dp[i],dp[i]+dp[next]+w[i][next]),那么大家考虑这题,我们只需要起始节点,那么原创 2020-06-01 13:43:12 · 87 阅读 · 0 评论 -
牛客小白月赛 22 D收集纸片(dfs or 状压dp)
题目大致意思:我们把房间按照笛卡尔坐标系进行建模之后,每个点就有了一个坐标。假设现在房子里有些纸片需要被收集,收集完纸片你还要回归到原来的位置,你需要制定一个策略来使得自己行走的距离最短。你只能沿着 x 轴或 y 轴方向移动,从位置 (i,j) 移动到相邻位置 (i+1,j),(i-1,j),(i,j+1) 或 (i,j-1) 距离增加 1。输入描述:在第一行中给出一个T, 1≤T≤10, 代表测试数据的组数。对于每组输入,在第一行中给出房间大小,第二行给出你的初始位置。接下来给出一个正整数原创 2020-05-27 21:07:23 · 161 阅读 · 1 评论 -
状态压缩DP学习(第一章)
参考了一个博主的文章,他用的是背包问题来讲解的状压dp,我个人感觉讲的很不错,所以就想写一遍文章来浅谈感受和学习总结,算是入门,因为以前一直感觉状压dp很难,一直理解不透,看完这篇文章确实感觉理解的更好啦。背包问题可能大家都不陌生,今天就用背包讲一下状压dp原理,首先dp就要1.先定义状态:那么考虑到n个物品,只有两种状态选与不选,所以二进制数0和1足以表示状态集,因为如果开个n为数组的话,这样对于空间的浪费是很严重的,如果n个都选就是就是 1111…n个1,都不选就是n个0,到这里大家可以看到其实空原创 2020-05-27 17:35:06 · 168 阅读 · 0 评论 -
树形DP简单模板题树上路径计数
这是题目:思路很简单啦,如果你学过树形dp的话,这个就是模板题哈哈,首先我们考虑二维dp数组dp[N][2],dp[i][0]代表以i为i为根节点且路径长度数为偶数的数量,dp[i][1]就是奇数的数量,递推方程就很简单的可以写出来了dp[father][0] += dp[son][1]+1,dp[father][1] += dp[son][0] AC代码:```cpp#incl...原创 2019-11-25 23:03:12 · 292 阅读 · 1 评论 -
2017 icpc hongkong G(完全背包加上+路径输出+贪心)
https://nanti.jisuanke.com/t/40403这时计蒜客的题目链接,大家如果想看英文题目可以去看一下,嘿嘿,当然这里我会把题目大致意思写出来,就是给你一个数额,让你用给定的纸币金额来组成这个数额,在输出每种纸币用的数量,而且要可能的用面值大的纸币,且要尽可能少的纸币,这题就是背包题加上路径输出,但是唯一一点不同的是这题要尽可能的用面值大的,所以在第一层for用数额,在里面用...原创 2019-08-17 10:17:42 · 168 阅读 · 0 评论