随笔分类 - DP
摘要:CXVII.[清华集训2012]串珠子 如果直接暴力上状压进行计数是会重复计算的;那么怎样不重不漏地计数呢? 我们发现,要求出连通图的数量是比较难的;但是要求出非联通图的数量是比较简单的,因为我们可以祭出套路。 我们设 \(f_i\) 表示 \(i\) 集合中所有图的数量(不管联通与否)。再设 \(
阅读全文
摘要:CXVI.[COCI2014-2015#1] Kamp 一看题面,突然感觉很弱智,不就是求出以每个点为根到其它所有特殊点的距离之和吗?这不是随随便便换个根就完事了吗? 然后兴冲冲敲出来,一测样例全挂。 后来发现并不是这样的,因为车上可以同时搭载多人,且车最后可以就停在某个地方不回去了。 稍微想想可以
阅读全文
摘要:CXV.[COCI2019]Mobitel 如果正着来DP的话,状态是 \(O(rsn)\) 的,不可能通过。 这时,我们就要应用一些数论知识了: 若 \(\prod a_i<n\), 则 \(\left\lfloor\dfrac{n-1}{\prod a_i}\right\rfloor\geq 1
阅读全文
摘要:CXIV.[POI2014]ZAL-Freight 题解
阅读全文
摘要:CXIII.[JLOI2016/SHOI2016]侦察守卫 神题。 见代码即可。 #include<bits/stdc++.h> using namespace std; int n,m,p,a[500100],f[500100][25],g[500100][25],res=0x3f3f3f3f;
阅读全文
摘要:CXII.[CEOI2007]树的匹配Treasury 题解
阅读全文
摘要:CXI.[九省联考2018]一双木棋chess 一下子就想到了LXX.[USACO5.5]贰五语言Two Five(可见刷题笔记II),因为同是阶梯型的图样。然后稍微想一想就发现总方案数可以用隔板法证得是$\dbinom{n+m}$的,代入一看发现才$2\times10^5$都不到。于是就果断DP了
阅读全文
摘要:CX.[POI2015]MOD 比较恶心的题目。 首先,有一个结论,即如果把两棵树通过某种方式连接起来,新树的直径的端点一定来自于原本两棵树的直径端点集合。 则考虑新树的最大直径,明显就是把两棵树的直径直接连一块,就是两棵树的直径之和再加一。 考虑新树的最小直径,则应该选择两树直径的中点(如果直径长
阅读全文
摘要:CIX.[NOI Online #1 入门组]魔法 我们可以构造出原图的转移矩阵 \(A\),表示只走原图的边的代价。这个直接暴力上Floyd即可。 我们还可以构造出魔法的转移矩阵$B$。 则,可以想到,答案一定是 \(ABABABABAB\dots ABA\) 这种样子。 故我们用$B$左乘$A$
阅读全文
摘要:CVIII.[POI2014]MRO-Ant colony 根据下取整除法的性质(\(\left\lfloor\dfrac{\left\lfloor\dfrac{x}{y}\right\rfloor}{z}\right\rfloor=\left\lfloor\dfrac{x}{yz}\right\r
阅读全文
摘要:CVII.[NOI2009]二叉查找树 首先该树的中序遍历是唯一可以确定的(直接按照数据值排序即可)。 然后,因为权值可以被修改成一切实数,故我们完全可以把权值离散化掉。 于是我们现在可以设置一个DP状态$f[l,r,lim]$表示: 区间$[l,r]$中的所有东西构成了一棵子树,且树中最小权值不小
阅读全文
摘要:CVI.[CSACADEMY]Root Change 常规换根DP。设 \(f_i\) 表示 \(i\) 子树中以 \(i\) 为起点的最长路径长度,设 \(sz_i\) 表示 \(i\) 子树中边的数量,再设 \(g_i\) 表示 \(i\) 子树的答案。 则 \(f\) 和 \(sz\) 显然很
阅读全文
摘要:CV.[ARC067D] Yakiniku Restaurants 明显在最优方案中,行走方式一定是从一条线段的一端走到另一端,不回头。 于是设 \(f[i,j]\) 表示从 \(i\) 走到 \(j\) 的最优代价。明显,该代价对于不同的券相互独立。故我们依次考虑每一张券。 我们发现,假设有一张位
阅读全文
摘要:CIV.[TopCoder 12519]ScotlandYard 我们考虑一个最原始的DP状态:$f[\mathbb]\(表示根据当前给出的信息,猜的人可以推测出当前藏的人一定在且仅在集合\)\mathbb$之中时,藏的人最多可以走多少步。 然后考虑枚举藏的人下一步给出走了什么颜色的边,然后取$\m
阅读全文
摘要:CIII.[APIO2014]连珠线 一般的换根DP题。 明显可以看出,最终的树一定可以通过指定一个根变成一棵有根树,所有的蓝边都可以被分成两两一组,其中每组中两条边深度递增。 于是我们可以设置DP状态。$f_{x,0/1}$表示节点$x$,它不是/是某对蓝边的中间节点时,子树中最大的蓝边权和。 简
阅读全文
摘要:CII.HDU6212 Zuma 一眼区间DP。 首先,我们将串压缩(即将相同颜色的相邻珠子合并)。记$col_i$为位置$i$的颜色,$sz_i$为位置$i$的珠子数。 我们设$f[i,j]\(表示消去区间\)[i,j]$中所有东西的最小步数。 则有: \(f[i,j]=\min\begin{ca
阅读全文
摘要:CI.[IOI2009]salesman 思想非常simple:因为一次从上游往下游的转移,可以被表示成 \(f_i+(pos_i-pos_j)\times U\rightarrow f_j\ |\ pos_i<pos_j\land tim_i<tim_j\) 拆开括号,即可得到两半互不相关的部分。
阅读全文
摘要:C.[POI2013]BAJ-Bytecomputer 首先先说猜想:最终序列中所有数都是$-1,0,1$,且不存在先改后面,后改前面的状态。 有了这个猜想,就可以DP了。我们设$f_{i,j}$表示要使位置$i$出现数$j$,且前$i$个位置单调不降的最小费用。则我们枚举往$a_{i+1}$上加多
阅读全文
摘要:IC.[POI2007]ATR-Tourist Attractions 这题我一年半之前初学状压DP时就写了份没卡空间的做法,今天终于A了…… 首先,思路非常简单——我们可以使用Dijkstra预处理出来$2\sim k+1$中两两点之间的距离以及它们到$1$和$n$的距离。接着,设$f[i,j]$
阅读全文
摘要:LCVIII.[POI2006]PRO-Professor Szu 我要举报……本题数据与题面不符(事实上我已经举报了……),会有到不了主楼的情形,要特别考虑。 思路很简单,我们跑SCC缩点。假如一个SCC内部有自环,显然可以一直绕自环,故答案是无限;同时,所有可以走到该SCC的其它点答案都是无限。
阅读全文

浙公网安备 33010602011771号