博客园 首页 私信博主 显示目录 隐藏目录 管理 动画

随笔分类 -  动态规划 & 递推

上一页 1 ··· 4 5 6 7 8 9 下一页
摘要:"题目链接" $Description$ 求$[l,r]$中$0,1,\cdots,9$每个数字出现的次数(十进制表示)。 $Solution$ 对每位分别DP。注意考虑前导0: 在最后统计时,把0的答案减掉对应位的即可,在第$i$位的前导0会产生额外的$10^{i 1}$个答案。 cpp incl 阅读全文
posted @ 2018-04-01 17:01 SovietPower 阅读(171) 评论(0) 推荐(0)
摘要:"题目链接" $Description$ 求$[1,n]$中十进制表示包含"13"这个子串,且能整除13的数的个数。 $Solution$ 数位DP: dp[位][s(pre/have"13")][remainder],上界由DFS状态记录. cpp //15MS 1520K include int 阅读全文
posted @ 2018-04-01 16:13 SovietPower 阅读(170) 评论(0) 推荐(0)
摘要:题目链接 一个长度为$n$的循环节,在$k\times n(k\geq 1)$次之后一定会回到原样。 用$a_i$表示每个循环节$i$的长度,那么所有$n$个数字的排数为$lcm(a_1,a_2,\cdots,a_k)(+1)$,其中$a_i$满足$\sum_{i=1}^ka_i=n$. 所以题目实 阅读全文
posted @ 2018-03-31 17:30 SovietPower 阅读(168) 评论(0) 推荐(0)
摘要:"题目链接" 状态只与黑、白两点的颜色有关,于是用 $f[x][i][j]$表示当前以x为根节点,有$i$个黑点$j$个白点,使得x子树满足该条件的最小花费。 最后答案就是 $min\{f[root][0][j],f[root][i][0/1]\}$。 把 $i\geq 1$的状态都看做 $i=1$ 阅读全文
posted @ 2018-03-31 16:52 SovietPower 阅读(374) 评论(0) 推荐(2)
摘要:"题目链接 BZOJ" "洛谷" 真的题意不明啊。。 $Description$ 你有k次选择的机会,每次将从n种物品中随机一件给你,你可以选择选或不选。选择它会获得这种物品的价值;选择一件物品前需要先选择某些种物品每种至少一件。 物品价值可能有负。问在最优策略下期望得分。 $Solution$ 并 阅读全文
posted @ 2018-03-28 20:59 SovietPower 阅读(265) 评论(0) 推荐(0)
摘要:"题目链接 BZOJ" "洛谷" ~~以为裸点分治,但数据范围怎么这么小?快打完了发现不对。。~~ n^2做的话其实是个水题。。 枚举每一个点为根,为了不重复计算,我们要求所求的三个点必须分别位于三棵子树上。 考虑当前前3棵子树深度为deep的点分别有a,b,c个,新增的子树深度为deep的点有d个 阅读全文
posted @ 2018-03-28 14:53 SovietPower 阅读(229) 评论(0) 推荐(0)
摘要:"题目链接" $Description$ 有n(n include define gc() getchar() const int N=12; int n,num[N]; double p[N],f[N][103],g[N][103]; inline double FP(double x,int k 阅读全文
posted @ 2018-03-28 07:45 SovietPower 阅读(242) 评论(0) 推荐(0)
摘要:[TOC] 2018.3.27 Test 时间:7:30~11:50 期望得分:(50+)+0+20=70 实际得分:52+5+20=77 总结 T1 看错一点题,暴力也废了很长时间。 T2 期望DP没写过不敢写,然而50分和期望没有关系,贪心什么的就行。没细看。 T3 建图死活建不出来,没想明白费 阅读全文
posted @ 2018-03-27 20:19 SovietPower 阅读(267) 评论(0) 推荐(0)
摘要:"题目链接" f定义和下面的思路一样,转移时枚举填什么字符,去更新f并算出有哪些字符串可以匹配某个状态(见code吧...)。 预处理出有哪些字符串在第i位可以转移到某个字符c,dp时&一下状态即可。 以下是错误思路(题意理解错,如果是'?'则无论如何都已匹配且要求恰好K个。。): f[i][s]表 阅读全文
posted @ 2018-03-26 20:13 SovietPower 阅读(253) 评论(2) 推荐(0)
摘要:[TOC] 2018.3.18 Test 时间: 3.5h 得分: 太zz不写了(T3 60暴力分就我没看。。) "BZOJ总题目链接" "LOJ总题目链接" T1 BZOJ.4868.[六省联考2017]期末考试 "题目链接" T2 "题目链接" T3 BZOJ.4870.[六省联考2017]组合 阅读全文
posted @ 2018-03-18 13:47 SovietPower 阅读(314) 评论(0) 推荐(0)
摘要:"题目链接" 首先数位DP 用f[i][0/1]表示匹配到第i位前面i 1位是否为上界。 这样还需要状态转移,对于每个状态 枚举每一个数,用AC自动机得到下一个状态(这样状态其实就是在树上的标号) ps1.数不能带前导0(因为会有00...这样的串),对每一位要先加上以每个非零数开头的方案数 ps2 阅读全文
posted @ 2018-03-11 16:49 SovietPower 阅读(279) 评论(0) 推荐(0)
摘要:"题目链接" 设f[i][j]为当前是第i位考号、现在匹配到第j位(已有j 1位和A[]匹配)的方案数 因为假如当前匹配j位,如果选择的下一位与A[j+1]不同,那么新的匹配位数是fail[j]而不是0,那么设由匹配j位转移到匹配k位的方案数为t[j][k] 那么 $f[i][j] = ∑f[i 1 阅读全文
posted @ 2018-03-08 14:48 SovietPower 阅读(207) 评论(0) 推荐(0)
摘要:"题目链接" 比较容易想到用f[i][j]表示走了i步后到达j点的方案数,但是题目要求不能走上一条走过的边 如果这样表示是不好转移的 可以考虑边,f[i][j]表示走了i步后到达第j条边的方案数,那么有 f[i][j] = ∑f[i 1][k] (边k能直接到达边j) 只要不走反向边,就保证了不会走 阅读全文
posted @ 2018-03-04 20:39 SovietPower 阅读(197) 评论(0) 推荐(0)
摘要:题目链接 \(Description\) 有k种饮料,浓度Ai给出,求用最少的体积配成n/1000浓度的饮料。 \(Solution\) 根据题意有方程 \((A1*x1+A2*x2+...+An*xn)/[(x1+x2+...+xn)*1000] = n/1000\) xi表示Ai选多少升(\(0 阅读全文
posted @ 2018-02-28 14:25 SovietPower 阅读(323) 评论(0) 推荐(0)
摘要:"题目链接" $Description$ 每个点有费用si与价值pi,要求选一些带根的连通块,总大小为k,使得 $\frac{∑pi}{∑si}$ 最大 $Solution$ 01分数规划,然后dp,设f[i][j]表示i子树选j个的最大权值和,直接暴力背包转移即可 在枚举子节点选的数量时,假设x有 阅读全文
posted @ 2018-02-23 18:06 SovietPower 阅读(148) 评论(0) 推荐(0)
摘要:"题目链接" $Description$ 一条直线上有n个村庄,位置各不相同。选择p个村庄建邮局,求每个村庄到最近邮局的距离之和的最小值。 $Solution$ 先考虑在$[l,r]$建一个邮局,最优解肯定是建在中间。 这样$mid$两边对称,距离和是最小的;若建在$mid 1$,(假设$mid$与 阅读全文
posted @ 2018-02-22 20:31 SovietPower 阅读(190) 评论(0) 推荐(0)
摘要:给出平面上的$n$个点,满足$X_i$严格单增,$Y_i$严格单减。以$x$轴和$y$轴正方向作边,使这$n$个点构成一棵树,最小化树边边的总长。 阅读全文
posted @ 2018-02-22 17:28 SovietPower 阅读(275) 评论(0) 推荐(0)
摘要:"题目链接" (卡常背包) 朴素的多重背包是: $f[i][j] = \max\{ f[i 1][j k v[i]]+k w[i] \}$,复杂度 $O(nV \sum num_i)$ 可以发现求$\max$时有很多值是被重复枚举过的 换一种方程表示形式,对于每个$v[i]$,设$j=K v[i]+ 阅读全文
posted @ 2018-02-22 16:35 SovietPower 阅读(359) 评论(0) 推荐(0)
摘要:"题目链接" cpp / 每行每列不能超过2个棋子,求方案数 前面行对后面行的影响只有 放了0个、1个、2个 棋子的列数,与排列方式无关 所以设f[i][j][k]表示前i行,放了0个棋子的有j列,放了1个棋子的有k列,则放了2个棋子的为(m j k)列 则放棋子一共可分为6种情况 不放棋子:1.f 阅读全文
posted @ 2018-02-12 13:03 SovietPower 阅读(204) 评论(0) 推荐(0)
摘要:"题目链接" $Description$ 有n个数,将其分为k段,每段的值为这一段的总共数字种类,问最大总值是多少 $Solution$ DP,用$f[i][j]$表示当前在i 分成了j份(第j份包括i) 那枚举前边的断点k,即 $f[i][j]=max{f[k][j 1]+val(k+1,1)}$ 阅读全文
posted @ 2018-02-12 12:38 SovietPower 阅读(276) 评论(0) 推荐(0)

上一页 1 ··· 4 5 6 7 8 9 下一页