嘟嘟嘟 这道题如果不看题解,我是绝对想不到二分图匹配的。 咱们先不想二分图匹配的事,先想想什么状态是有解的:只要每一行都有一个黑块,且每一个黑块都在不同的一列,那么一定有解。因为即使这些黑块不在主对角线上,我们也可以通过交换行(列)来达到这个最终状态,这就像不断交换两个数来给一个序列排序一样。 然后 ...
分类:
其他好文 时间:
2018-09-03 18:27:55
阅读次数:
154
传送门 这道题就是一道不大容易被看出来的二分图匹配……(也可能是我太菜了qaq) 首先我们看一下,题目要求我们把对角线上都填满。我们把每一行和每一列都抽象成一个点,那么我们只要让每一行和每一列都匹配上就可以。 先把每行向源点连边,每列向汇点连边,行和列之间,如果g[i][j]是1的话那么就把第i行和 ...
分类:
其他好文 时间:
2018-09-02 01:47:27
阅读次数:
168
类型:单调栈 传送门:>Here< 题意:给出一个$01$矩阵,求$01$相间的最大子正方形和最大子矩阵 解题思路 首先考虑如果要求的不是$01$相间而是全$1$的怎么做?那就和上一题一样了,预处理$p[i][j]$。特判正方形(取较短边) 那么只需要把问题转化为全$1$矩阵即可。思考黑白相间矩阵的 ...
分类:
其他好文 时间:
2018-08-18 17:53:59
阅读次数:
155
1060: [ZJOI2007]时态同步 Description 小Q在电子工艺实习课上学习焊接电路板。一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数 字1,2,3….进行标号。电路板的各个节点由若干不相交的导线相连接,且对于电路板的任何两个节点,都存在且仅 存在一条通路(通路指连接两个 ...
分类:
其他好文 时间:
2018-08-18 00:42:36
阅读次数:
150
题面 "题目传送门" 解法 挺恶心的题 考虑动态点分治,先建出点分树 然后每一个点开两个堆,分别为$a,b$ $a_i$表示点分树上$i$子树中所有节点在原树上和点分树中$i$父亲的距离,$b_i$表示点分树中$i$所有儿子的堆顶 再开一个堆$ans$,存每一个$b_i$最大和次大值的和 在修改的时 ...
分类:
其他好文 时间:
2018-08-14 19:54:21
阅读次数:
175
[ZJOI2007]最大半连通子图 题目大意: 一个有向图称为半连通的,当且仅当对于任意两点$u,v$,都满足$u$能到达$v$或者$v$能到达$u$。 给定一个$n(n\le10^5)$个点,$m(m\le10^6)$条边的有向图, 问该图最大半连通子图的节点个数及方案数。 思路: 缩点后在DAG ...
分类:
其他好文 时间:
2018-08-05 11:03:42
阅读次数:
167
先tarjan缩成DAG,然后答案就变成了最长链,dp的同时计数即可 就是题面太唬人了,没反应过来 ...
分类:
编程语言 时间:
2018-07-31 21:37:45
阅读次数:
129
Description 小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏。矩阵游戏在一个N *N黑白方阵进行(如同国际象棋一般,只是颜色是随意的)。每次可以对该矩阵进行两种操作:行交换操作:选择 矩阵的任意两行,交换这两行(即交换对应格子的颜色)列交换操作:选择矩阵的 ...
分类:
其他好文 时间:
2018-07-28 21:49:27
阅读次数:
140
注意到怎么换都行,但是如果把某个黑方块用在对角线上,它原来所在的行列的的黑方块就都不能用 所以要选出n组不重的行列组合,这里用匈牙利算法做二分图匹配即可(用了时间戳优化) cpp include include include using namespace std; const int N=405 ...
分类:
编程语言 时间:
2018-07-27 01:33:22
阅读次数:
154
题意: 小 Q 是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏――矩阵游戏。矩阵游戏在一个 N×N 黑白方阵进行(如同国际象棋一般,只是颜色是随意的)。每次可以对该矩阵进行两种操作: 行交换操作:选择矩阵的任意两行,交换这两行(即交换对应格子的颜色) 列交换操作:选择矩阵的任意两列 ...
分类:
其他好文 时间:
2018-07-26 16:20:50
阅读次数:
163