
数位dp
largecub233
这个作者很懒,什么都没留下…
展开
-
洛谷 P3413 SAC#1 - 萌数
https://www.luogu.org/problem/show?pid=3413 题解全是记忆化爆搜,吓尿了都; 然后fop_zz秒了 百度果然搜不到题解,最后我在google 里面找到了; 首先回文串嘛>2就好啦 所以我们只要判断2情况 aa或者aba; 所以我们f[i][j][k] 表示第i位为j i-1位为k的所有萌; 那么显然对于重复很难判断; 所以我萌有2种方法原创 2017-07-30 16:49:38 · 746 阅读 · 0 评论 -
数位dp 洛谷P2602 [ZJOI2010]数字计数
https://www.luogu.org/problem/show?pid=2602 数位dp是dp的一种,一般来说这种东西至少要一个预处理数组 这种题目你只要靠自己的力量成功搞掉一道,基本上思路都是在的,和背包很像,是有模板的; 我们先弄一个f[i]表示位数位i时,所有情况中0这个数字出现的次数 注意这里的i位是可以有前导0的; 我们前导0和无前导0的情况都要算,那么用前导0的f[]原创 2017-02-18 16:02:39 · 535 阅读 · 1 评论 -
数位dp-P2518 [HAOI2010]计数
https://www.luogu.org/problem/show?pid=2518 对于一个数,把其中的0删掉,相当于把0放到了前面; 所以这个问题就是让我们求一下给我们的数的全排列比当前小的有几个; 我们假设a[i]代表数字i 0~9有几个; 那么用这些来表示全排列 (a[0]+a[1]+…+a[9])!/a[0]!/a[1]!/…/a[9]!; 当然如果a[i]==0那么不参与运原创 2017-02-20 15:56:50 · 531 阅读 · 1 评论 -
树上背包——洛谷P1272 重建道路
https://www.luogu.org/problem/show?pid=1272 我靠,就是一个裸的树上背包; 结果没记起来,看题解也看不懂; 然后看到一篇博文写到了多叉转二叉; 就一下子都记起来了; f[i][j]表示在i点保留j个节点的最小割数;#include<bits/stdc++.h>#define Ll long longusing namespace std;co原创 2017-06-05 09:36:36 · 643 阅读 · 0 评论