
动态规划
SuperRandi
听取wa声一片
展开
-
CF The Walkway
(为什么pre[i+1]-pre[i-1]-1需要减一,因为我们要计算第i个点对区间(v[i-1],v[i+1])的影响,不能包含第i+1个特殊点,所以减去的是第i+1个特殊点。思路:先预处理出每个区间(左开右闭)需要吃多少个饼干,用pre前缀和数组统计前i个特殊点区间吃多少个饼干,枚举第i个特殊点删掉后需要吃多少块饼干,例如我们要删掉第i个特殊点,现在可以删除一个特殊点,问这个人最少吃多少饼干以及有多少种删除方式。一条路上有几个特殊点,一个人会在以下这几种情况吃一块饼干。原创 2025-03-07 15:00:36 · 272 阅读 · 0 评论 -
2025“钉耙编程”中国大学生算法设计春季联赛 - 热身赛
思路:时间为8s,所以可以考虑暴力做法,我们会发现这三种操作不涉及进位也就是说我们可以先预处理出前面的n-1位在这三种操作下的所得结果,再加上这一位,例如yu[i][j]=yu[i/a][j/a]*a+min(i%a,j%a),表示i和j进行与运算所得结果,i,j的范围为0~1023,超过的部分用递归进行求解,然后我们定义bool dp[i][j]为第i次操作能得到j,所以我们只需用第i-1次操作得到的每个数与ai进行三次运算即可,最后遍历dp[n][i]求和,即得到最终结果。补题1006和1009。原创 2025-03-02 11:03:12 · 954 阅读 · 0 评论 -
牛客周赛 Round 71 补题DE
只需要全排列枚 333 个块填的是什么颜色 {a,b,c},然后枚举每一个位置填什么,下一个位置的颜色可以是当前位置颜色的后面颜色,例如:当前颜色是 b,那么下一个位置的颜色就可以是 b、c,然后判断一下选定的颜色和下一个位置的颜色是否一致,加上花费时间即可,然后 dp转移。思路:先将数量大于等于2的长度 存到vector数组中,然后再暴力枚举底和腰,用海伦公式求三角形的面积,腰从大到小枚举,一旦枚举到符合条件的就退出该层循环,如果2*腰的长度<=底也要退出循环,后面的腰长度更小更不可能构成三角形。原创 2024-12-09 12:53:56 · 318 阅读 · 0 评论 -
动态规划例题
【代码】动态规划例题。原创 2024-08-05 21:13:32 · 234 阅读 · 0 评论 -
求区间的最大值(RMQ、线段树)
有n个数,给你m个询问,每次询问给你A,B个数,要求你编写程序求出[A,B]这个区间中的最大值。第三行读入一个 M,表示你看完那串数后需要被提问的次数。输出共 M行,每行输出一个数,表示对一个问题的回答。接下来 M行,每行都有两个整数 A,B。接下来一行为 N个数,表示数字序列。第一行一个整数 N表示数字的个数。原创 2024-03-11 17:58:35 · 651 阅读 · 0 评论 -
最长公共子序列两种解法
【代码】最长公共子序列两种解法。原创 2024-03-01 09:02:14 · 307 阅读 · 0 评论 -
计数问题(数位统计dp)
【代码】计数问题(数位统计dp)原创 2024-01-25 11:32:57 · 510 阅读 · 0 评论 -
分组背包问题
分组背包问题与多重背包问题的区别多重背包是第i种物品选几个或者不选,分组背包是第i组物品选哪个或者不选。原创 2024-01-09 13:54:58 · 405 阅读 · 0 评论 -
多重背包问题(二进制优化)
显然三重循环10的9次方会超时,那么我们可以将第i种物s个数量用二进制分解成log(s)堆,例如10可分解成1,2,4,3;这四个数包含了1-10的任意一种组合,以下就是详细代码了原创 2024-01-09 12:11:14 · 508 阅读 · 0 评论