![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 51
lyx_2016
蒟蒻,OIer
展开
-
【牛客contest16806 C】【状态压缩】【bitset】
题目链接题目描述一共有 n个数,第 i 个数是 xixi 可以取 [li , ri] 中任意的一个值。设 S=∑xi2S = \sum{{x_i}^2}S=∑xi2,求 S 种类数。n, l, r 都是1~100首先考虑暴力做法,因为n很小,暴力枚举是10^6用dp[100][10^6] 这样一个数组来存结果。第一维i表示用了i个数,第二维j表示要凑出j这个数,dp[i[][j]取值只有0和1,表示这个数能不能凑出来。首先bool数组可以用bitset来节省空间,bitset每位数只占1b原创 2021-06-14 21:37:01 · 151 阅读 · 0 评论 -
【CodeForces 1183H】【dp】【容斥】
题目链接题目大意是给一个字符串s,找出最长的k个互不相同的子串需要注意这道题里子串的定义,是可以不连续的几个字母,例如“asdf”有2^4个子串,分别是“asdf” “asd” “asf” “adf” “sdf” “as” “ad” “af” “sd” “sf” “df” “a” “s” “d” “f” “”(空串)n的范围是1~100, k的范围是1~10^12最开始没好好看这道题里什么是子串,我以为必须是连续的字母,n的数据范围又小,暴力枚举就行唉,不好好看题就急着写的下场这样的话,我们考虑原创 2021-02-06 15:49:24 · 143 阅读 · 0 评论 -
【LeetCode834】【树形dp】每日一题day35
道题要求每个节点到其他所有节点的距离之和先考虑一个节点到其他所有节点的距离之和的问题。看到距离首先我想到的就是最短路,但是树上没啥最短路_(:з」∠)_然后我就没想出什么行之有效的方法_(:з」∠)_看了题解是树形dp,那么问题来了,为什么呢?这道题也没有什么最值,看起来距离之和是一个很固定的东西,一点都不动态。其实我觉得,与其说是dp,不如说是递推。这里的中心思想就是从叶子往上推,处理距离distSum[root] = sigma(distSum[root'sChild] + childSum[原创 2020-10-16 11:16:13 · 175 阅读 · 0 评论 -
【LeetCode416】【DP】每日一题day33
好久不见~我一开始看到,元素和是一个定值嘛,我觉得可以转换成LeetCode40 组合总和II,找nums里面和为一个定值的元素,就写了回溯,结果超时了class Solution {public: bool recall(int cnt, int sum, map<int, int> appearNumber, vector<int> nums) { if (sum == 0) return true; if (sum <原创 2020-10-12 10:36:27 · 83 阅读 · 0 评论