随笔分类 -  dp练习

摘要:一开始我是分解的n,求得这一段合法连续自然数的中间,只要存在并且左右不超范围即可,然后忘了连续的为偶数也可以,只要两两配对成就行。 sum(1,n)=(r+l)*(l-r+1)/2; 设k1=(r+l),k2=(l-r+1);l=(k2-k1+1)/2,r=(k1+k2-1)/2; 由此可得k1,k 阅读全文
posted @ 2019-10-09 09:17 sdzmq 阅读(152) 评论(0) 推荐(0) 编辑
摘要:这个题很有意思啊, 暴力打了一个稍稍加了个技巧得了60. 正解的话,暴力还有一种搞法,把每个数当因子把它的倍数加一。 由这个也可以推出一个式子,每个数在1到n的贡献为n/i个。 第一种 第二种 阅读全文
posted @ 2019-10-09 08:28 sdzmq 阅读(119) 评论(0) 推荐(0) 编辑
摘要:一道非常愚蠢的模拟题 值得庆祝的是,从题解找到了比较两个字符串是否相同的函数 数据费心费力为了卡我这个只比较第一二三个字母的造了这么一组数据 2someguysomeotherguysomeotherguy1500 1someguysomeguy500 1someotherguy 答案: someg 阅读全文
posted @ 2019-10-08 11:53 sdzmq 阅读(226) 评论(0) 推荐(0) 编辑
摘要:#include <iostream> #include <cstdio> using namespace std; int ans=0,n,k; int work(int x){ int num=0; for(;x;x-=x&-x) num++; return num; } int main(){ 阅读全文
posted @ 2019-10-08 10:55 sdzmq 阅读(100) 评论(0) 推荐(0) 编辑
摘要:杨辉三角的带权应用,杨辉三角用组合数推,(记得从二开始),什么数组该赋什么值想好了再写 阅读全文
posted @ 2019-10-08 10:51 sdzmq 阅读(132) 评论(0) 推荐(0) 编辑
摘要:说实话我真没思路 阅读全文
posted @ 2019-10-08 10:45 sdzmq 阅读(124) 评论(0) 推荐(0) 编辑
摘要:是一道非常有意思的。。。。乱搜题 打了个树形dp,将自己的建,不建,次建作为状态 发现没有考虑两个兄弟的情况,然后题解的dp和我的意义完全不一样,我就又写了个贪心:每次找最深的点,在它爷爷上建一个,进行覆盖。最大的收获是fa【i】的使用,利用了树只有一个父亲(指定根),非常便利地找爷爷。也方便上下覆 阅读全文
posted @ 2019-10-07 20:35 sdzmq 阅读(121) 评论(0) 推荐(0) 编辑
摘要:区间dp,,,我不会啊,,dp好久没做了。 区间dp是用来处理相邻合并继承的问题的,例如本题,相邻是条件。f[i][j]中i,j一般是区间左右端点。可以表示还剩这个区间时最大价值(例如本题),所以最后列举的是长度为一的区间。但大多数是表示此区间已处理时的最大值。一般一维循环枚举len长度,一维枚举左 阅读全文
posted @ 2019-08-11 18:13 sdzmq 阅读(124) 评论(0) 推荐(0) 编辑
摘要:#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> using namespace std; string tmp,b,a; int xu,e,circle,flag,stop,l[27],g[1 阅读全文
posted @ 2019-07-19 18:07 sdzmq 阅读(118) 评论(0) 推荐(0) 编辑
摘要:今天是线性结构和基础数论的一天! 这个题,呃,实际上它是个递推式,跟栈没有半毛钱关系。 首先,一进一出,f【i】【k】中i表示已进栈i个,已出栈k个时的方案数。 状态转移方程:f【i】【k】=f【i-1】【k】+f【i】【k-1】; f【i-1】【k】表示它的上一个状态(进栈i-1个,出栈k个)是进 阅读全文
posted @ 2019-07-15 08:44 sdzmq 阅读(109) 评论(0) 推荐(0) 编辑
摘要:woc花了20分钟捏了个记忆化搜索一遍过了!!!!!我最近真的是,太太太幸运了。 题目很简单,以任意一个入口进去,打一个规规矩矩的记搜,记得入口也可以判一下,如果搜别的时候经过了它已经有了它的值,就连搜也不用搜了。 阅读全文
posted @ 2019-06-26 21:28 sdzmq 阅读(115) 评论(0) 推荐(0) 编辑
摘要:这个题是我自己打出来的第二道题~\(≧▽≦)/~啦啦啦,虽然想+改好像得有2小时,并且解法很不像正解。 对于n组数据,我们发现,当前f【m】的一组可能解为w1台+w2台(w1+w2=j),此时我们并不关心w1和w2是怎么来的。 f【m】的全部解为 0,1,2,3....m m,m-1,m-2.... 阅读全文
posted @ 2019-06-25 19:04 sdzmq 阅读(183) 评论(0) 推荐(0) 编辑
摘要:我发誓这是第一个我没看题解自己想出来的动归题 感动吖! 先将串按从短到长排序,如果lenx<leny就交换,(true);如果不是就不交换,(false); 以第i个单词为结束的最长可连接数,因为是线性,所以以已经处理好的单词数为状态转移,看此单词由它前边的哪一个f[j]接上构成新的f[i]最优。 阅读全文
posted @ 2019-06-15 20:06 sdzmq 阅读(177) 评论(0) 推荐(0) 编辑
摘要:给了一个串,求最少填几个字母可以组成回文串,我们发现找到最中间的数后,其余只要不对称的都需要补(左边的补到右边,右边的补到左边所以=len-中间相同的子串),所以不如去求中间的子串,一减就可以了。 string:len=s1.size(); char:len=strlen(); 从一开始录入:sca 阅读全文
posted @ 2019-06-15 19:11 sdzmq 阅读(134) 评论(0) 推荐(0) 编辑
摘要:一道非常弱智的DP 就是个01背包的sb版 但是需要个初始化,二维数组记录i=城市数,j=天数,记得二维数组时第二个循环为正常顺序,不能倒序。还有就是初始化,真的没想到该把f初始为什么,因为要求min,memset成0,ans就全是0,初始为极大则会直接影响结果。 所以,就把(i,i)全整出来,因为 阅读全文
posted @ 2019-06-14 19:52 sdzmq 阅读(99) 评论(0) 推荐(0) 编辑
摘要:链接:https://www.luogu.org/problemnew/show/P1736 这个题真的做的我头大( ⊙ o ⊙ ) 题目分析:n行m列的矩阵,非0即1,求满足对角线有鱼(两条对角线其中一条)其他地方无鱼的最大正方形。 思路:二维前缀和; 其实我一开始想的是二维前缀搞出来,然后如果要 阅读全文
posted @ 2019-06-14 18:47 sdzmq 阅读(234) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示