BZOJ 4823 老C的方块】的更多相关文章

把格子分成四类 第一类是蓝线左右的相邻两个格子 第二类为与蓝线左边格子相邻的点 第三类为与蓝线右边格子相邻的点 建边就S朝第二类每个点建边 第二类每个点朝其相邻的第一类建边 第一类从左格子朝右格子建边 第一类朝与其相邻的第三类建边 第三类朝T建边 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef int JQK; ][] = { , -, -, , , , , }; struct node {…
4823: [Cqoi2017]老C的方块 题意: 鬼畜方块游戏不解释... 有些特殊边,有些四个方块组成的图形,方块有代价,删掉一些方块使得没有图形,最小化代价. 比较明显的最小割,一个图形中必须删掉一个方块. 我的想法是方块拆点然后用INF连起来. 但是你不能随便连啊,否则可能会出现一些原来没有的限制. 要找到一个连边的顺序!也就是如何分层 画一画发现是可以做到的,然后建图就行了. 我是一层一层建的... 然后一开始忘记考虑一种图形WA了两次... 总共花了3个多小时... #include…
题面太长了请各位自行品尝—>老C的方块 分析: 我们要解决掉所有使人弃疗的组合,还要保证花费最小,容易想到最小割(当然你要是想费用流的话,我们就没办法定义流量了) 我们来分析一下那些令人弃疗的组合,他们的规律: 首先是两个和特殊边直接相邻的方块(以下简称轴方块),加上两侧各任意一个边缘方块,组成了令人弃疗的组合. 所以我们有三种选择(准确地说其实只有两种,前两种本质一样): 1. 将和特殊边左侧的轴方块相连的所有边缘方块都破坏掉. 2. 将和特殊边右侧的轴方块相连的所有边缘方块都破坏掉. 3.…
4823: [Cqoi2017]老C的方块 题目:传送门 题解: 毒瘤题ORZ.... 太菜了看出来是最小割啥边都不会建...狂%大佬强强强   黑白染色?不!是四个色一起染,四层图跑最小割... 很惊奇的发现染完色之后只要是不喜欢的图形都一定可以由黄-->黑-->红-->绿 组成 那就很nice啦...兴高采烈的去敲代码...结果10^5*10^5???搞毛线...太弱了ORZ,又看了一波大佬的操作,用map存! woc...不谈了不谈了...撸撸撸(分情况分到想屎...虽然不多) 注…
[BZOJ4823][CQOI2017]老C的方块(网络流) 题面 BZOJ 题解 首先还是给棋盘进行黑白染色,然后对于特殊边左右两侧的格子单独拎出来考虑. 为了和其他格子区分,我们把两侧的这两个格子染成灰色. 于是一个不合法的状态就是两个相邻的灰色点如果还和一个其他的点相连就是非法的. 我们先把黑白点分开,源点连向黑点,汇点连向白点,边权是删去这个点的代价. 因为灰点可以两两配对,非两两配对之间的没有影响,然后所有黑点连向对应的灰点,另一半灰点连向对应的白点.而要删去一组不合法的要么删去一个灰…
题目链接 (Luogu) https://www.luogu.org/problem/P3756 (BZOJ) http://lydsy.com/JudgeOnline/problem.php?id=4823 题解 有点神仙的最小割题. 考虑题目里的图形,如果我们用四种颜色对棋盘进行染色,奇数行依次染\(0,1,2,3,0,1,2,3...\), 偶数行依次染\(3,2,1,0,3,2,1,0...\)则条件可以转化为不能出现相连的\(4\)个颜色互不相同的块. 那么可以建一个四层的图,对于每条…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4823 一个不合法方案其实就是蓝线的两边格子一定选.剩下两部分四相邻格子里各选一个. 所以这个图是一个四分图.记蓝线左边格子是1,右边是2,与 1 四相邻的是3,与 2 四相邻的是4:这个部分右边就是蓝线左边是2.右边是1,这样. 有一些“4个格子不能同时选”的限制,考虑怎么在图中表示. 需要做到的是4个格子里割掉一个就能让这条路径废掉,那么应该是把有联系的4个点连成一条链.因为是4分图,所…
分析: 我觉得我的网络流白学了...QAQ... 其实数据范围本是无法用网络流跑过去的,然而出题者想让他跑过去,也就跑过去了... 看到题目其实感觉很麻烦,不知道从哪里入手,那么仔细观察所给出的有用信息... 我们考虑网格图是一个含有挡板的图,这个挡板的分布很有规律,大概是每一行的相邻两个挡板都隔了四个格子,并且奇数行的排列相同,偶数行的排列相同... 然后考虑不合法的方块形状有什么共同点:仔细观察就会发现,所有的不合法图形中,挡板的左边至少有一个格子,右边至少有一个格子,并且左边的格子连着一个…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4823 https://www.luogu.org/problemnew/show/P3756 巧妙建图: 其实“俄罗斯方块”就是选择一条特殊边两边的方格,左右两边周围的六个中再各选两个: 于是可以把图“四分”,特殊边两边的格子算两种,而且奇数行和偶数行恰好相反,然后两边围着的格子也算两种: 然后不能有上面四种可选方格同时存在的情况,建出图来跑最小割即可. 代码如下: #include<cs…
lrd的题解:http://www.cnblogs.com/liu-runda/p/6695139.html 我还是太菜了.以后遇到这种题目应该分析分析性质的. 网络流复杂度真是$O(玄学)$ #include <map> #include <cmath> #include <queue> #include <cstdio> #include <cstring> #include <iostream> #include <alg…