#ZJOI2007

BZOJ1059 [ZJOI2007]矩阵游戏 二分图匹配 匈牙利算法

   有一个n*n(n<=200)的01矩阵,问你是否可以通过交换整行和整列使得左上角到右下角的对角线上的数字都是1。   我们发现,题目模型可以转换。  其实题目就是叫我们求是否存在一些1,这些1所在的行和列互不相同。  我给一个小小的证明:  假设我们选出了一个n个点的坐标。  如果这n个...

BZOJ1058 [ZJOI2007]报表统计 set

原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ1058.html  考虑用两个multiset分别维护两个答案。  一个直接按照权值维护,另一个维护一下相邻位置的差。  比较容易想到如何维护的吧,不多讲,看代码吧。#include<bits/stdc++.h>...

BZOJ1095 [ZJOI2007]Hide 捉迷藏 动态点分治 堆

原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ1095.html  有N个点,每一个点是黑色或者白色,一开始所有点的颜色都是黑色。有M次操作,每次操作有两种类型:1.修改一个点的颜色;2.查询树上所有黑色点对之间的距离最大值。  $Nleq100000,mleq50000...

BZOJ1096 [ZJOI2007]仓库建设 动态规划 斜率优化

原文链接http://www.cnblogs.com/zhouzhendong/p/8696410.html  给定两个序列$a,b,X$,现在划分$a$序列。  被划分出来的段$[j,i]$的花费为$a_i+sum_{k=j+1}^{i}(X_i-X_k)b_k$。  一种划分方式的花费就是每一段的花费之和。  问最...