摘要:
【BZOJ2285】[SDOI2011]保密(分数规划,网络流) 题面 "BZOJ" "洛谷" 题解 首先先读懂题目到底在干什么。 发现要求的是一个比值的最小值,二分这个最小值$k$,把边权转换成$t sk$,其中$t$是时间,$s$是安全系数。那么通过一遍$SPFA$可以求出到达所有的目标点的危险 阅读全文
摘要:
【BZOJ2246】[SDOI2011]迷宫探险(搜索,动态规划) 题面 "BZOJ" "洛谷" 题解 乍一看似乎是可以求出每个东西是陷阱的概率,然而会发现前面走过的陷阱是不是陷阱实际上是会对当前状态产生影响的。考虑一下状压,因为出了是陷阱和不是陷阱,还有一种情况是未知。所以三进制状压。 $0$表示 阅读全文
摘要:
【BZOJ2281】[SDOI2011]黑白棋(博弈论,动态规划) 题面 "BZOJ" "洛谷" 题解 先看懂这题目在干什么。 首先BZOJ上面的题面没有图,换到洛谷看题就有图了。 不难发现都相邻的两个异色棋子放在一起的时候,此时的先手无论怎么动,后手直接把棋子靠上去,这样子一定是先手先无法移动。即 阅读全文
摘要:
【BZOJ2245】[SDOI2011]工作安排(费用流) 题面 "BZOJ" "洛谷" 题解 裸的费用流吧。 不需要拆点,只需要连边就好了,保证了$W_j include include include using namespace std; define ll long long define 阅读全文
摘要:
【BZOJ2244】[SDOI2011]拦截导弹(CDQ分治) 题面 "BZOJ" "洛谷" 题解 不难发现这就是一个三维偏序+$LIS$这样一个$dp$。 那么第一问很好求,直接$CDQ$分治之后$dp$就好了。 那么第二问呢?首先如果记一个方案数,显然就可以在转移的时候求出以每个点开头/结尾的$ 阅读全文
该文被密码保护。 阅读全文
摘要:
【BZOJ2212】[POI2011]Tree Rotations (线段树合并) 题面 "BZOJ" "洛谷" 题解 因为是一棵二叉树,我们发现对于左右儿子而言只有两种放法。 不考虑左右儿子内部的相对顺序,那么发现两个儿子先后顺序的逆序对数是固定的,而确定好顺序之后显然就是一个分治的过程。 那么显 阅读全文
摘要:
【BZOJ2484】[SDOI2011]打地鼠(暴力) 题面 "BZOJ" "洛谷" 题解 看到数据范围这题就应该是一个暴力题了。 先考虑假如我们知道了锤子的大小$R C$,那么显然只需要从左上角开始从左往右从上往下一个个砸就行了,因为你砸到当前位置之后左上角一定没有限制了,只有当前这个位置还有限制 阅读全文
摘要:
【BZOJ2229】[ZJOI2011]最小割(网络流,最小割树) 题面 "BZOJ" "洛谷" 题解 "戳这里" 那么实现过程就是任选两点跑最小割更新答案,然后把点集划分为和$S$联通以及与$T$联通。 然后再这两个点集里面分别任选两点跑最小割,递归下去即可。 cpp include includ 阅读全文
摘要:
【BZOJ2228】[ZJOI2011]礼物(单调栈) 题面 "BZOJ" "洛谷" 题解 如果这个玩意不是一个三维立方体,而是一个二维的矩形,让你在里面找一个最大正方形,那么全世界都会做。 丢到三维上?似乎区别也不是很大啦。 我们先把每一层一片一片的剖开考虑,预处理以某个位置为左上角的最大正方形边 阅读全文
摘要:
【BZOJ2227】[ZJOI2011]看电影(组合数学,高精度) 题面 "BZOJ" "洛谷" 题解 这题太神仙了。 首先$K include include using namespace std; inline int read() { int x=0;bool t=false;char ch 阅读全文
摘要:
【BZOJ2427】[HAOI2010]软件安装(动态规划,Tarjan) 题面 "BZOJ" "洛谷" 题解 看到这类题目就应该要意识到依赖关系显然是可以成环的。 注意到这样一个性质,依赖关系最多只有一个,因此环状的依赖关系一定单独成环,其他点只可能将这个环作为依赖。 那么不成环的话,因为依赖关系 阅读全文
摘要:
【BZOJ2426】[HAOI2010]工厂选址(贪心) 题面 "BZOJ" "洛谷" 题解 首先看懂题目到底在做什么。 然而发现我们显然可以对于每个备选位置跑一遍费用流,然后并不够优秀。 不难发现所有的位置都要分配给两个工厂,而其中一个工厂的用量是$b$。那么我们先假装把所有的全部分配给这一个工厂 阅读全文
摘要:
【BZOJ2425】[HAOI2010]计数(组合数学) 题面 "BZOJ" "洛谷" 题解 很容易的一道题目。 统计一下每个数位出现的次数,然后从前往后依次枚举每一位,表示前面都已经卡在了范围内,从这一位开始比目标小。 对于长度小于当前数的个数,我们可以默认它们有前导零就行了。 cpp inclu 阅读全文
摘要:
【BZOJ2424】[HAOI2010]订货(费用流) 题面 "BZOJ" "洛谷" 题解 傻逼费用流吧、、、 一开始理解错意思了,仓库大小为$m$的含义是留到下个月最多为$m$,而不是任意时刻的容量不能超过$m$。 cpp include include include include using 阅读全文
摘要:
【BZOJ2208】[JSOI2010]连通数(Tarjan) 题面 "BZOJ" "洛谷" 题解 先吐槽辣鸡洛谷数据,我写了个$O(nm)$的都过了。 cpp include include using namespace std; define MAX 2020 struct Line{int 阅读全文
摘要:
【BZOJ2111】[ZJOI2010]排列计数(组合数学) 题面 "BZOJ" "洛谷" 题解 就是今年九省联考$D1T2$的弱化版? 直接递归组合数算就好了。 注意一下模数可以小于$n$,所以要存一下乘了几个零才行。 cpp include include using namespace std 阅读全文
摘要:
【BZOJ5286】[HNOI2018]转盘(线段树) 题面 "BZOJ" "洛谷" 题解 很妙的一道题目啊。(全世界除了我这题都有40分,就我是一个状压选手 首先来发现一些性质,我们走一圈一定不会更差。 为啥呢?我们反过来看,我们可以钦定一个时间$T$,然后从这个时刻出发,每个时刻可以向前走一步或 阅读全文
该文被密码保护。 阅读全文
摘要:
【BZOJ2003】[HNOI2010]矩阵(搜索) 题面 懒得粘了,不难找吧。 题解 "看的学长写的题解,也懒得写了" 大概是这样的。 不难发现只需要确定第一行和第一列就能确定答案,而确定第一行之后每确定一行的第一个数,这一行就全部确定了。所以只需要保证第一行和第一列的字典序最小就好了。 首先我们 阅读全文
摘要:
【BZOJ2000】[HNOI2000]取石头游戏(贪心,博弈论) 题面 "BZOJ" "洛谷" 题解 这题好神仙啊,窝不会QaQ。 假装一下只有三个元素$a_{i 1},a_i,a_{i+1}$,并且满足,$a_{i 1}\le a_i\ge a_{i+1}$那么肯定是$a_{i 1}+a_{i+ 阅读全文
该文被密码保护。 阅读全文
摘要:
【BZOJ1998】[HNOI2010]物品调度(并查集,模拟) 题面 "BZOJ,为啥这题都是权限题啊?" "洛谷" 题解 先不管$0$位置是个空,把它也看成一个箱子。那么最终的答案显然和置换循环节的个数相关,对于大小为$1$的循环,显然就是不要动。对于大小为$L$的循环,如果包含$0$位置,显然 阅读全文
摘要:
【BZOJ2001】[HNOI2010]城市建设(CDQ分治,线段树分治) 题面 "BZOJ" "洛谷" 题解 好神仙啊这题。原来想做一直不会做(然而YCB神仙早就切了),今天来怒写一发。 很明显这个玩意换种做法可以用线段树分治做,那么只需要$LCT$动态维护一下$LCT$就好了,时间复杂度?似乎是 阅读全文
摘要:
【BZOJ1925】[SDOI2010]地精部落(动态规划) 题面 "BZOJ" "洛谷" 题解 一道性质$dp$题。(所以当然是照搬学长PPT了啊 先来罗列性质,我们称题目所求的序列为抖动序列: 一个抖动序列的连续子序列还是一个抖动序列。 如果在一个抖动序列中$x$与$x+1$不相邻,那么交换两者 阅读全文