-------------各大OJ-------------
文章平均质量分 51
johsnows
正在静下心来学算法的acmer
展开
-
LeetCode 887. 鸡蛋掉落
这道题记得以前在gym上训练欧洲区域赛做过,但是现在完全忘了. 很自然的想法就是用动态规划去求解. 首先想到的是定义dp[i][j]为i层楼,j个鸡蛋最少xu'yao原创 2021-06-10 19:48:21 · 95 阅读 · 0 评论 -
hdu 6133 Army Formations(线段树合并)
其实题目要求的就是一颗子树上把所有的权值从小到大排序,每个值对应第k大,把k和值乘在一起加和,就是这个子树对应的根的答案。 说到底就是有多少个数大于一个值,这个值就要多加几次。 然后我就死在这个理解上,因为要考虑值相同的情况,这句话没错,但是容易忽略值相同的情况。 对于每个点我们建一颗权值线段树,表示以这个点为根的子树上的权值分部情况。 然后右子树上有多少值大于左子树上的值,以及左子树上有原创 2017-08-20 17:26:35 · 512 阅读 · 0 评论 -
atcoder Yet Another Palindrome Partitioning(dp)
题意: 给出一个字符串,最少需要多少次拆分得到的子串都是合法的,合法的定义是改变字符串顺序能得到一个回文串。 解题思路: 容易想到的是一个合法的字符串的26个字母最多只能一个字母出现次数为奇数,用26位二进制数(mask)表示,1表示奇数的话,只有能整除2的和0是合法的。 dp想法是每个状态减去一个合法串然后转移过来,但是显然不能for一下,这时候就利用下上面的mask。 用ma原创 2017-10-23 19:21:10 · 423 阅读 · 0 评论