摘要:
问题描述 "TYVJ1071" 题解 暴力$\mathrm{DP}$ 首先,一个$O(n^3)$的解法: 设$opt_{i,j}$代表$a$的前$i$个和$b$的前$j$个的$\mathrm{LCIS}$. 显然有: 1.$a_i=b_j$ $$opt_{i,j}=opt_{i 1,j}$$ 2.$ 阅读全文
摘要:
问题描述 "LG3004" 题解 把拿走的过程反向,看做添加的过程,于是很显然的区间DP模型。 设$opt_{i,j}$代表区间$[i,j]$中Bessie可以获得的最大值,显然有 $$opt_{l,r}=sum_{l,r} min(opt_{l+1,r},opt_{l,r+1})$$ 于是爆了空间 阅读全文
摘要:
问题描述 "LG2770" "LOG6122" 题解 教训:关掉流同步之后就不要用其他输入输出方式了。 拆点。 两个拆点之间连$(1,1)$,其他连$(1,0)$ $\mathrm{Code}$ cpp include using namespace std; void read(int &x){ 阅读全文
摘要:
问题描述 "LG2512" "BZOJ1045" 题解 这是一个链状问题的环状版本。 问题最终变为给定数轴上的$n$个点,找出一个到他们的距离之和尽量小的点,而这个点就是这些数中的中位数。 ~~网络流24题的负载平衡问题是双倍经验~~ $\mathrm{Code}$ cpp include usin 阅读全文
摘要:
问题描述 "LG2053" "BZOJ1070" 题解 将$m$个修理工拆为$n \times m$个,将修理工和车辆看做二分图,连出一个完全二分图。 边流量为$1$,费用为时间,费用流即可。 $\mathrm{Code}$ cpp include using namespace std; temp 阅读全文
摘要:
问题描述 "LG5338" "LOJ3105" "BZOJ5509" 题解 建立一棵$\mathrm{Treap}$,把原来的$val$换成两个值$ac,tim$ 原来的比较$val_aac_b$,则$node_anode_b$ ~~10s时限简直要卡爆评测机~~ $\mathrm{Code}$ c 阅读全文
摘要:
问题描述 "LG4516" "LOJ2546" 题解 好一个毒瘤题。 hkk:JSOI的签到题 设$opt[i][j][0/1][0/1]$代表结点$i$的子树,放置$j$个,$i$放不放,$i$是否覆盖的方案数。 DP方程太长,无力打出(真·原因:我要睡觉!)。 $\mathrm{Code}$ c 阅读全文
摘要:
问题描述 "LG2045" 题解 费用流。 套路拆点,把$(i,j)$拆为两个点,在这两个点之间连边:一条边流量为$1$,费用为$a_{i,j}$,另一条边为流量为$INF$,费用为$0$(表示联通)。 然后在$(i,j)$的出点向$(i+1,j)$,$(i,j+1)$连边,流量$INF$,费用$0 阅读全文
摘要:
问题描述 "LG1640" 题解 一开始以为是把$(a,b)$作为左右部点,发现$n \le 1000000$,建图是$O(n^2)$的,会爆掉 属性值向$i$建边。 $\mathrm{Code}$ cpp include using namespace std; template void rea 阅读全文
摘要:
问题描述 "LG2602" "BZOJ1833" 题解 数位$\mathrm{DP}$板子题。 注意限制位数、前导零。 $[a,b]=[1,b] [1,a 1]$ $\mathrm{Code}$ cpp include using namespace std; define int long lon 阅读全文