
dp
文章平均质量分 85
ez_lcw
这个作者很懒,什么都没留下…
展开
-
【XSY3535】购物(决策单调性优化DP,分治,结论,背包)
题面购物题解决策单调性全忘了……先考虑暴力怎么做,我们可以设 fi,jf_{i,j}fi,j 表示前 iii 个商店买了 jjj 件物品的最小代价,然后有转移:fi,j=mink=0j(fi−1,k+sai,j−k)f_{i,j}=\min_{k=0}^j(f_{i-1,k}+sa_{i,j-k})fi,j=k=0minj(fi−1,k+sai,j−k)其中 sai,jsa_{i,j}sai,j 表示 ai,∗a_{i,*}ai,∗ 的前缀和。我们先来看一个决策单调性优化原创 2022-01-02 22:18:03 · 573 阅读 · 0 评论 -
【XSY2418】修路(最短路图,支配)
首先可以 O(mlogn)O(m\log n)O(mlogn) 按题意把树建出来,显然这是一棵最短路图的生成树。那么询问 u,vu,vu,v 相当于在树上 (u,v)(u,v)(u,v) 路径上找到深度最深的一点 www,满足最短路图中刨掉树上路径 (u,w)(u,w)(u,w) 上的边后仍有从根到达 vvv 的路径。考虑处理出 f(u)f(u)f(u) 表示 uuu 深度最浅的祖先满足 f(u)f(u)f(u) 能通过非树上路径 (f(u),u)(f(u),u)(f(u),u) 上的边在最短路图中到原创 2021-10-31 21:15:51 · 142 阅读 · 0 评论 -
【XSY3331】东非大裂谷(结论,DP)
一般这种 “分段,求每段极值和的最大值” 的题都有两个结论:一段的最大值和最小值一定是该段的两个端点。证明:如果不是的话:那么我们显然可以把最小值和最大值所在位置之间的部分提取出来作为一段,而其他的部分分离出去,这样得到的答案肯定不劣。一段肯定是单调不增或单调不降的。证明:如果不是的话:假设该段为 a1,a2,⋯ ,ana_1,a_2,\cdots,a_na1,a2,⋯,an。由结论1,我们可以假设 a1a_1a1 该段的最小值、ana_nan 为该段的最大值(a1a_1a1 为原创 2021-09-10 19:57:07 · 144 阅读 · 0 评论 -
【AGC001E】BBQ Hard(图论,dp)
题意:求 ∑i=1n∑j=1i−1(Ai+Aj+Bi+BjAi+Aj)\sum\limits_{i=1}^n\sum\limits_{j=1}^{i-1}\dbinom{A_i+A_j+B_i+B_j}{A_i+A_j}i=1∑nj=1∑i−1(Ai+AjAi+Aj+Bi+Bj),n≤2×105n\leq 2\times 10^5n≤2×105,Ai,Bi≤2000A_i,B_i\leq 2000Ai,Bi≤2000。显然是从 Ai,Bi≤2000A_i,B_i\leq 2000Ai原创 2021-09-01 20:02:56 · 202 阅读 · 0 评论 -
【XSY3657】因数分解(容斥,DP)
考虑没有 bib_ibi 的限制怎么做。先把 n!n!n! 质因数分解:n!=∏i=1kpiqin!=\prod\limits_{i=1}^kp_i^{q_i}n!=i=1∏kpiqi。设 bi=∏j=1kpjxi,jb_i=\prod\limits_{j=1}^kp_j^{x_{i,j}}bi=j=1∏kpjxi,j,那么 biai=∏j=1kpjaixi,jb_i^{a_i}=\prod\limits_{j=1}^kp_j^{a_ix_{i,j}}biai=j=1∏kpjai原创 2021-08-07 16:59:09 · 282 阅读 · 0 评论 -
【THUWC2020】Day2T2(dfs树,DP,线段树合并)
对于每一个点 uuu,我们先找到满足右述条件的深度最小的 uuu 祖先 fff 并记这个深度最小的祖先的深度为 dp(u)dp(u)dp(u):fff 能只通过除了树上 [f,u][f,u][f,u] 路径所包含的边之外的边到达 uuu。那么显然,一次询问 [a,b][a,b][a,b] 中,对于 bbb 的子树中的一点 uuu,111 号点能到达 uuu 当且仅当 minv∈[b,u]dp(v)≤dep(a)\min\limits_{v\in[b,u]} dp(v)\leq dep(a)v∈[b,u]原创 2021-08-03 20:45:56 · 322 阅读 · 0 评论 -
【POI2011】Lightning Conductor/【JSOI2016】灯塔(决策单调性优化dp)
首先进行变形:aj≤ai+p−∣i−j∣p≥maxj=1n(aj+∣i−j∣)−ai\begin{aligned}a_j&\leq a_i+p-\sqrt{|i-j|}\\p&\geq \max_{j=1}^n\left(a_j+\sqrt{|i-j|}\right)-a_i\end{aligned}ajp≤ai+p−∣i−j∣≥j=1maxn(aj+∣i−j∣)−ai把 ∣i−j∣|i-j|∣i−j∣ 拆为 max(i−j,j−i)\max(i-j,j原创 2021-07-23 19:28:18 · 119 阅读 · 0 评论 -
【XSY3270】Domino Colorings(轮廓线dp,状压)
若已经知道了每个格子的颜色,我们可以用轮廓线 DP(类似插头 DP)判断棋盘是否能被多米诺骨牌填满,设 dp[S]dp[S]dp[S] 表示是否存在某种填法使得轮廓线每个位置是否被填的状态为 SSS 即可。现在我们需要枚举每个格子的颜色,同时还要判断能否被填,所以我们要记录一维表示 dp[S]dp[S]dp[S] 数组。为了转移时维护这一数组,我们还要记录轮廓线上每个格子的颜色。于是设 f(i,j,c,s)f(i,j,c,s)f(i,j,c,s) 表示考虑到 (i,j)(i,j)(i,j),轮廓线上格原创 2021-07-23 16:42:41 · 283 阅读 · 1 评论 -
【XSY3927】二叉树(多项式加速DP,递推)
题面二叉树题解设 fnf_nfn 表示叶子数为 nnn 的答案,容易得出以下式子:f0=0,f1=1fn=∑i=1ncififn−i\begin{aligned}&f_0=0,f_1=1\\&f_n=\sum_{i=1}^n c_if_if_{n-i}\end{aligned}f0=0,f1=1fn=i=1∑ncififn−i其中 csi=vic_{s_i}=v_icsi=vi,其余的 cic_ici 均为 AAA。注意到 k≤10k\leq原创 2021-06-25 18:58:42 · 234 阅读 · 0 评论 -
【XSY4055】小K的疑惑(模拟最短路,值域并查集)
题面小K的疑惑题解以下的数都是在 bbb 进制意义下讨论。默认 n≥bn\geq bn≥b,否则 n<bn< bn<b 可以特判答案为 111。考虑 DP,设 drd_rdr 表示所有模 nnn 余 rrr 的正整数中非零位个数的最小值,那么我们要求的即为 d0d_0d0。我们考虑从 drd_rdr 转移出去:我们可以考虑把这个模 nnn 余 rrr 的数末尾添上一个 000,此时余数变为了 br mod nbr\bmod{n}brmodn,非零位个数不变,故:d原创 2021-06-15 13:25:01 · 143 阅读 · 0 评论 -
【XSY3990】Alice 和 Bob 双在玩游戏(博弈,dp,拓扑,背包)
题面Alice 和 Bob 双在玩游戏题解注意到这里一个人无法操作后,另一个人也不一定无法操作(即不像普通的取石子游戏一样),所以考虑转化一下他们各自的最优策略:双方都想让自己比对方尽可能多移动一些步。然后注意到每一颗石子都是相互独立的,即一个点上多一颗石子不会影响其他石子。所以考虑设 fif_ifi 表示:若在 iii 节点上多放一颗棋子,在双方都使用最优策略的情况下,Alice 能比 Bob 最多多走多少步。(fif_ifi 可能是负数,因为 iii 节点的颜色是不确定的)容易得到转移方原创 2021-04-06 07:37:44 · 1038 阅读 · 0 评论 -
【XSY3898】强度(期望dp)
首先题目的要求肯定要转化。有多种转化方法,例如:(其中 sis_isi 代表以 iii 为根节点的子树大小)E(w(T))=E(∑i=1n∑j=1ndistT(i,j))=E(∑i=2nsi(n−si))=E(∑i=2nnsi−si2)=n∑i=2nE(si)−∑i=2nE(si2)\begin{aligned}\Epsilon(w(T))=&\Epsilon\left(\sum_{i=1}^{n}\sum_{j=1}^{n}\operatorname{dist}_T(i,j)\righ原创 2021-03-23 19:11:23 · 159 阅读 · 0 评论 -
【ABC196F】Substring 2(多项式乘法)
以下的字符串均从 111 开始记位。以下设 SiS_iSi 表示字符串 SSS 的第 iii 位,S(l,r)S(l,r)S(l,r) 表示字符串 SSS 的第 lll 位到第 rrr 位组成的子串,也可以表示字符串 SSS 的第 lll 位到第 rrr 位组成的序列。设 fi,jf_{i,j}fi,j 表示 SSS 串从位置 iii 往后 jjj 个字符所组成的串 和 TTT 串从位置 111 往后 jjj 个字符所组成的串 有多少位不相等,即 S(i,i+j−1)S(i,i+j-1)S(i,i+j原创 2021-03-21 10:33:12 · 288 阅读 · 1 评论 -
【XSY3951】简单的博弈题(博弈,dp,组合数,容斥)
题面简单的博弈题题解对于贪心的对手的情况,田忌赛马即可。对于随机的对手,发现使用任何策略都不影响结果。那我们只需要选一种自己数字的排列并固定下来,再去和对手的数字的 m!m!m! 种全排列匹配即可。暴力枚举全排列是不可接受的,考虑自己选一种特殊的数字排列固定,以优化计算。考虑将自己的数字排序后形成的排列为 a1,a2,⋯ ,ama_1,a_2,\cdots,a_ma1,a2,⋯,am,不妨设对手的数字中有 sis_isi 个小于 aia_iai。设 dp[i][j]dp[i][j]d原创 2021-03-15 21:39:25 · 144 阅读 · 0 评论 -
【XSY3929】PQ 树(区间dp)
题面PQ 树题解注意到题目中提到了 “合法的 PQ 树都能表示出 1,2,3,⋯ ,n1,2,3,\cdots,n1,2,3,⋯,n 这个排列"。那么如果我们把所有叶子节点按它们的数字按 1∼n1\sim n1∼n 从左到右排,形成的 PQ 树是没有相交边的,也就是说不会出现这种情况:你也可以理解成一棵子树一定存着的是一段连续的数字区间(顺序不一定是有序的)。不难发现如果此时两课 PQ 树的形态不同,他们能表示出来的集合也不同。那我们考虑区间dp,设 f(i,j)f(i,j)f(i,j) 表示原创 2021-03-10 15:18:27 · 239 阅读 · 0 评论 -
【XSY3896】相似(dp套dp,状压)
题面相似题解可以发现,SSS 和 TTT 相似,等价于它们的最长公共子序列长度至少为 n−kn - kn−k。首先考虑如何求出两个字符串的 LCS\text{LCS}LCS(最长公共子序列)。考虑 dp:设 fi,jf_{i,j}fi,j 表示 S[1∼i]S[1\sim i]S[1∼i] 与 T[1∼j]T[1\sim j]T[1∼j] 的 LCS\text{LCS}LCS 长度,转移是显然的:fi,j={fi−1,j−1+1ifS[i]=T[j]max(fi−1,j,fi,j−1)if原创 2021-03-05 10:24:23 · 171 阅读 · 1 评论 -
【XSY3888】传送门(最短路树,可并堆,dp)
题面题解假设 SSS 到 TTT 路径上一条边 (u,v)(u,v)(u,v) 被删掉之后最短路会如何变化。建出以 TTT 为根的最短路树,如果 (u,v)(u,v)(u,v) 不在树上,那么我们直接从 uuu 沿着最短路树走到 TTT 即可。否则,如果 (u,v)(u,v)(u,v) 在最短路树上,那么 vvv 一定是 uuu 的父亲。那么我们需要从 uuu 走到 uuu 子树内的任意一个点 xxx,然后再从 xxx 经过一条非树边跳到一个在 uuu 子树外的点 yyy,然后再沿最短路树走到 T原创 2021-02-07 12:24:17 · 307 阅读 · 0 评论 -
【XSY3892】【hihocoder1147】时空阵(分层图dp)
设 dp(i,t,l)dp(i,t,l)dp(i,t,l) 表示已经定好前 iii 层,共有 ttt 个节点,其中第 iii 层有 lll 个节点。直接转移即可,注意一些细节:第 111 层只有 111 号节点。同层之间可以乱连,相邻层之间可以乱连,跨层之间不能连。需要钦定 nnn 号点在第 m+1m+1m+1 层。#include<bits/stdc++.h>#define N 110#define ll long long#define mod 100000原创 2021-02-07 11:08:33 · 227 阅读 · 0 评论 -
【bzoj4712】洪水(dp,树剖)
一种非 DDP 的树剖做法。主要是因为我不会 DDP,在考场上只想到了树剖。首先如果没有修改,很容易想到朴素的 dp 做法:设 valuval_uvalu 表示 uuu 本身的权值,dpudp_udpu 表示以 uuu 为根的子树的答案,显然有:dpu=min(valu,∑v∈son(u)dpv)dp_u=\min\left(val_u,\sum_{v\in son(u)}dp_v\right)dpu=min⎝⎛valu,v∈son(u)∑dpv⎠⎞就是要么割自己,要么割所有的子原创 2020-10-30 21:12:29 · 188 阅读 · 0 评论 -
【AGC013D】Piling Up(神奇的dp)
考场上用了一种奇怪的做法,不知道为什么就对了,考完后仔细想才想明白。很巧妙的一种 dp 方式。首先发现每次操作是拿一个球、放两个球、再拿一个球,总球数不变,所以有 黑球数=n−白球数\text{黑球数}=n-\text{白球数}黑球数=n−白球数。那么可以设 dp(i,j)dp(i,j)dp(i,j) 表示 iii 次操作后,当前箱子里白球还剩 jjj 个所得到的的颜色序列的情况数。显然有状态转移:dp(0,i)=1dp(0,i)=1dp(0,i)=1,0≤i≤n0\leq i\leq n0≤原创 2020-10-17 16:39:25 · 297 阅读 · 0 评论 -
【AGC003F】Fraction of Fractal(dp,矩阵快速幂)
先说一下下文会用到的定义或称呼的意思:称单位分形为题目给出的 111 级分形。称一种分形左右联通,则说明将两个这种分形左右放在一起时,至少有一个连通块是跨越这两个分形的。设一种分形的左右联通个数 side0side_0side0 表示,当两个这种分形左右放在一起时,所贡献的连通块个数,即有多少个连通块是跨越左右两个分形的。显然,当一种分形左右不连通时,side0=0side_0=0side0=0。设一种分形的 tot0tot_0tot0 表示有多少组黑色单元格是左右相邻的。比如下图中原创 2020-10-17 16:37:16 · 167 阅读 · 0 评论 -
【ARC074E】RGB Sequence(神奇的dp)
注意到颜色的种类数只有 333 种,n≤100n\leq 100n≤100 也很小。然后就有了一种神奇的 dp 状态:考虑从前往后填方块,设 dp(i,j,k)dp(i,j,k)dp(i,j,k) 表示离当前位置最近的颜色位置在 iii,离当前位置第二近的颜色位置在 jjj,离当前位置第三近的颜色位置在 kkk。显然,当前位置就是 iii,所以这样设置帮我们减少了一维。先 O(n2m)O(n^2m)O(n2m) 枚举每一个区间和每一个要求,预处理哪些方案是不合法的,然后直接 O(n3)O(n^3)O(原创 2020-10-17 16:30:52 · 188 阅读 · 0 评论 -
【BZOJ4987】Tree(树形dp)
题意:给你一棵 nnn 个节点的树找出 kkk 个不同的点 a1,a2,⋯ ,aka_1,a_2,\cdots,a_ka1,a2,⋯,ak,使得 ∑i=1k−1dis(ai,ai+1)\sum\limits_{i=1}^{k-1} dis(a_i,a_{i+1})i=1∑k−1dis(ai,ai+1) 最小。首先有个容易想到的性质:这 kkk 个点一定是相邻的,那么选 kkk 个点可以看成选 k−1k-1k−1 条相连的边。但关键是我们不是要算一个环的长度,而是一条路径的长度,也就是说不用原创 2020-09-15 13:30:16 · 228 阅读 · 0 评论 -
KPGAME - A game with probability(概率dp,博弈)
先考虑一下如果我想赢得游戏,我会采取的最优策略是什么。首先,想赢得游戏就是要取到最后一个石子,每次抛硬币相当于给你一次机会,每次机会都有相同概率取到石子,显然,最优策略就是让我最后一次取石子的机会越多。如何让机会最多?当然是取最后一个石子时,我先抛硬币,这样我的机会就越多。也就是说,我不想取倒数第二个石子。因为如果是我取了倒数第二个石子的话,取最后一个石子时先抛硬币的就是对手了。那么就可以考虑 dp 了:设 dp(i,j=0/1,k=0/1)dp(i,j=0/1,k=0/1)dp(i,j=0/1,k=原创 2020-07-28 19:12:46 · 345 阅读 · 0 评论 -
【SDOI2009】HH去散步(dp,矩阵快速幂)
看到题目第一眼,最暴力的想法就是设 dp(i,j)dp(i,j)dp(i,j) 表示以 aaa 为起点、iii 为终点,路径长度为 jjj 的路径数。容易得到状态转移方程:dp(u,j)=∑(v,u)dp(v,j−1)dp(u,j)=\sum_{(v,u)}dp(v,j-1)dp(u,j)=∑(v,u)dp(v,j−1)。但是我们发现一个问题:题目中要求“人物不能立刻沿着刚刚走来的路走回”,但显然这种 dp 方式是不符合要求的,所以想怎么解决。这里用到一个常用的小trick:我们先把双向边拆成两条单原创 2020-07-24 17:14:53 · 189 阅读 · 0 评论 -
【USACO10JAN】Cheese Towers S 奶酪塔 (背包dp)
一种思路奇特的做法。看到题目容易联想到背包dp,因为看上去很像。但是我们并不知道上面有没有大奶酪。所以我们不妨倒过来看,从上往下加奶酪。设 dp(i,1/0)dp(i,1/0)dp(i,1/0) 表示当前从上往下的累加高度为 iii,这之中有/无大奶酪。显然,当我们考虑新加一个奶酪时,有:{dp(i,0)=max(dp(i−hj,0)+vj) (hj<K)dp(i,1)=max(dp(i−hj,0)+vj) (hj≥K)\begin{case原创 2020-07-19 16:26:18 · 292 阅读 · 0 评论 -
【BZOJ3329】Xorequ(数位dp+矩阵快速幂)
由 x⊕3x=2xx\oplus3x=2xx⊕3x=2x 推出 x⊕2x=3xx\oplus2x=3xx⊕2x=3x,然后又有 x+2x=3xx+2x=3xx+2x=3x。定理:若 a⊕b=ca\oplus b=ca⊕b=c 且 a+b=ca+b=ca+b=c,则不可能存在 aaa、bbb 在二进制下的某一位都是 111。证明:设 aaa 在二进制下的第 iii 位为 aia_iai,bbb 在二进制下的第 iii 位为 bib_ibi,ccc 在二进制下的第 iii 位为 cic_ici。显然有原创 2020-07-17 18:44:51 · 499 阅读 · 0 评论 -
【BZOJ4006】【JLOI2015】管道连接(斯坦纳树)
看到题面容易想到跟斯坦纳树有关。那么我们不妨设 f(i,sta)f(i,sta)f(i,sta) 表示根为 iii,关键点的状压状态为 stastasta 时的最小代价。那么所有的 f(i,sta)f(i,sta)f(i,sta) 我们都可以用斯坦纳树的模板求出来。现在考虑如何达到题目的要求。因为考虑到频道的数量也小于 101010,所以考虑一下能不能也用状压解决。设 g(sta′)g(sta')g(sta′) 表示频道的状压状态为 sta′sta'sta′ 时的最小代价。(如果 sta′sta'原创 2020-06-18 13:14:29 · 181 阅读 · 0 评论 -
【51Nod1386】双马尾机器人(分块+dp)
对于这种找互质的数的集合的题,一般是讨论每个数的质因子会不会有重复。听说这种互质的题把质因子分为小于 n\sqrt{n}n 和大于 n\sqrt{n}n 是经典套路?因为当 nnn 很小的时候,小于 n\sqrt{n}n 的质数并不多。比如对于这一题,小于 N=1000\sqrt{N=1000}N=1000 的数只有 111111 个。那么对于那些只有小于 N\sqrt{N}N 的质因子的数进行状压 dp,设 dp(i,j)dp(i,j)dp(i,j) 为前 iii 个数中,所有选出的数的所原创 2020-05-26 14:06:57 · 490 阅读 · 0 评论 -
[USACO20OPEN]Sprinklers 2: Return of the Alfalfa(dp)
先讲一下等会要用到的定义:红格代表被甜玉米洒水器喷洒到的方格,蓝格代表被苜蓿洒水器喷洒到的方格。橙格代表有甜玉米洒水器的方格,紫格代表有苜蓿洒水器。(a,b)(a,b)(a,b) 指网格线的交点,[a,b][a,b][a,b] 指网格。比如下面这个图中,黄点代表的是 (4,3)(4,3)(4,3),黄格代表的是 [2,3][2,3][2,3]。sumisum_isumi 表示网格图的第 iii 行中有多少个没被占据的网格。然后说说考试时的心路历程。(其实是用来帮助你如何由暴力思原创 2020-05-16 11:33:56 · 291 阅读 · 0 评论 -
[NOI Online 2020 #2 提高 B] 子序列问题 (dp+线段树)
真的是事后诸葛亮,一下考场就知道怎么做了,现在把题解补回来看到这个问题,我第一下想到的就是 dpdpdp。如何 dpdpdp?设 dp[i]dp[i]dp[i] 为以 iii 为右端点的所有子串的答案之和,那么最后要输出的答案就是 ans=∑i=1ndp[i]ans=\sum_{i=1}^{n}dp[i]ans=∑i=1ndp[i]。至于怎么维护这个 dp[i]dp[i]dp[i],我一...原创 2020-05-02 22:05:03 · 221 阅读 · 0 评论 -
【XSY1976】【BZOJ2286】【SDOI2011】消耗战(虚树,dp)
这题的dp思想还是比较容易想的,关键是如何保证时间复杂度,这时就用到了虚树的技巧。1.虚树是什么?(虚树的性质)不妨设现在询问给出了kkk个点,我们命名这些节点为关键节点。那么在我的建边方式中,虚树就是:仅包括这些关键节点以及它们两两之间的lcalcalca的一棵树。但仍然保持原树的形态和祖先关系。即若关键节点aaa在原树中是关键节点bbb的祖先,则在虚树中,aaa仍是bbb的祖先。(...原创 2019-11-30 11:48:50 · 171 阅读 · 0 评论 -
【HDU4822】【XSY2021】Tri-war
如果题目中只有两个国家,事情就非常简单了:假设只有国家AAA和BBB,我们先找出AAA和BBB的最近公共祖先lcalcalca,然后找到在路径A⟶lca⟶BA\longrightarrow lca\longrightarrow BA⟶lca⟶B上的中点midmidmid,然后分3类讨论:若dis(A,mid)==dis(B,mid)dis(A,mid)==dis(B,mid)dis(A,mi...原创 2019-10-02 11:56:27 · 212 阅读 · 0 评论 -
【XSY2444】【BZOJ4042】【CERC2014】【luogu4757】Parades(树形dp+状压dp)
题面Description从前有个CJB国,它有nnn个城市和n−1n-1n−1条道路。每条路连接两个城市。城市之间两两可达。每个城市与不超过10条道路相连。因为HZ国国家领导人来访CJB国,CJB想为HZ举行阅兵仪式。CJB规划了 mmm 条路线。路线 iii 是从 uiu_iui 到 viv_ivi 的最短路径。你是CJB国的中央军委主席,你需要确保国家安全。因此,正式阅兵时,任意...原创 2019-11-01 21:31:48 · 236 阅读 · 0 评论 -
【XSY2564】sequence(dp)
题面【题目描述】给定一个长度为nnn的由[[[’000’......’999']]]组成的字符串sss,v[i,j]v[i,j]v[i,j]表示由字符串sss第iii到第jjj位组成的十进制数字。将它的某一个上升序列定义为:将这个字符串切割成mmm段不含前导’000'的串,切点分别为k1k_1k1,k2k_2k2…km−1k_{m-1}km−1,使得v[1,k1]<v[k...原创 2019-08-22 19:45:24 · 260 阅读 · 0 评论 -
【XSY2518】记忆(memory)(状压dp,概率与期望,概率dp)
a原创 2019-08-25 13:59:14 · 336 阅读 · 0 评论 -
【XSY2500】都城(树形dp)
题面DescriptionInputOutputSample Input41 42 43 4Sample Output2223HINT题解考虑到一个性质:任意两个相邻的节点,它们的ansansans值相差为1。(这是显然的,自己画一下就好了)所以我们就先任意选出一个点,将它为都城的答案求出来,再从这个节点开始遍历一遍树,通过两相邻节点间的关系求出ansa...原创 2019-08-14 21:35:06 · 270 阅读 · 0 评论 -
【loj2683】「BalticOI 2013」非回文数 Palindrome-Free Numbers(数位dp)
这道题看着像是manacher,但其实是数位dp。因为如果某个数上的某一位与它的上一位相同,则这个数肯定是个回文数;同理,如果某个数上的某一位与它的上上一位相同,则这个数肯定也是个回文数。数位dp时要注意前导0的判断。代码:#include<bits/stdc++.h>#define ll long long#define N 21#define L 11using...原创 2019-08-14 21:54:53 · 365 阅读 · 0 评论 -
【XSY2538】/【HDU6155】Subsequence Count(矩阵乘法+线段树)
题目翻译Description给定一个010101串 S1...nS_{1...n}S1...n 和 QQQ 个操作。操作有两种类型:1、将 [l,r][l,r][l,r] 区间的数取反(将其中的000变成111,111变成000)。2、询问字符串 SSS 的子串 Sl...rS_{l...r}Sl...r 有多少个不同的子序列。由于答案可能很大,请将答案对 109+710^9+71...原创 2019-08-20 15:02:27 · 250 阅读 · 0 评论