BZOJ2303 [Apio2011]方格染色 并查集】的更多相关文章

欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ2303 题意概括 现在有一个N*M矩阵,矩阵上只能填数字0或1 现在矩阵里已经有一些格子被填写了数字,询问是否存在一种填写方案使得「任意一个2*2的矩阵异或和为1」,输出方案总数 题解 我们发现当我们已经确定(1,1)的颜色为1的时候: 我们知道c(i,j). 那么如果i和j都是偶数,那么就有c(1,1)^c(i,1)^c(1,j)^c(i,j)==1 否则就是0. 因为假设s(i,j)表示以i,…
题意: $n*m:n,m \le 10^6$的网格,每个$2 \times 2$的方格必须有1个或3个涂成红色,其余涂成蓝色 有一些方格已经有颜色 求方案数 太神了!!!花我三节课 首先想了一下只有两行,发现可以直接$f[i][3]\ DP$出来,每一列放的方案只与上一列有关 如果有多行呢,我们可以把上一列放的状态状压$f[i][s]$,然后枚举转移 复杂度爆炸 好,看一眼题解 woc题解说的些什么东西根本看不懂,还是自己想吧 发现,貌似一个状态只有两个后继状态唉,就是说这一列的右面一列只有两种…
[BZOJ2303][Apio2011]方格染色 试题描述 Sam和他的妹妹Sara有一个包含n × m个方格的 表格.她们想要将其的每个方格都染成红色或蓝色. 出于个人喜好,他们想要表格中每个2 ×   2的方形区 域都包含奇数个(1 个或 3 个)红色方格.例如,右 图是一个合法的表格染色方案(在打印稿中,深色代 表蓝色,浅色代表红色) . 可是昨天晚上,有人已经给表格中的一些方格染上了颜色!现在Sam和Sara 非常生气.不过,他们想要知道是否可能给剩下的方格染上颜色,使得整个表格 仍然满…
Description Sam和他的妹妹Sara有一个包含n × m个方格的表格.她们想要将其的每个方格都染成红色或蓝色.出于个人喜好,他们想要表格中每个2 × 2的方形区域都包含奇数个(1 个或 3 个)红色方格.例如,右图是一个合法的表格染色方案(在打印稿中,深色代表蓝色,浅色代表红色) . 可是昨天晚上,有人已经给表格中的一些方格染上了颜色!现在Sam和Sara非常生气.不过,他们想要知道是否可能给剩下的方格染上颜色,使得整个表格仍然满足她们的要求.如果可能的话,满足他们要求的染色方案数有…
这题太神了 首先我们可以发现只有当i和j都是偶数时a[1][1]^a[1][j]^a[i][1]^a[i][j]=1才满足情况,其它时都为0 所以我们可以先把i和j都为偶数的地方^1变为0 下面才是最牛逼的地方,并查集的应用在这里体现的淋漓尽致. 0表示相同 1表示不同 一开始赋初值都表示为相同 然后每次更新并查集时只要更新他到根所有的数异或起来就是他与根的关系 由于根的g一定为0,所以此时得到的还有它实际应该是多少 我们假设一种比较复杂的情况 我们只有a[1][j]^a[i][1]^a[i][…
比较难想到的是将题目中的要求看做异或.那么有ai,j^ai+1,j^ai,j+1^ai+1,j+1=1.瞎化一化可以大胆猜想得到a1,1^a1,j^ai,1^ai,j=(i-1)*(j-1)&1.也就是说,确定第一行和第一列的颜色,就可以确定整个矩阵.现在如果没有已填的格子的限制,答案就是2n+m-1. 然后考虑已填格子.假设固定了a1,1,那么其影响到的就是a1,j和ai,1.即要求两者相同或不同.于是可以把每个格子的染色情况拆成两个点,根据已填格子将其连边,同一连通块内的点只要选择一个就必须…
BZOJ_2303_[Apio2011]方格染色 _并查集 Description Sam和他的妹妹Sara有一个包含n × m个方格的 表格.她们想要将其的每个方格都染成红色或蓝色. 出于个人喜好,他们想要表格中每个2 ×   2的方形区 域都包含奇数个(1 个或 3 个)红色方格.例如,右 图是一个合法的表格染色方案(在打印稿中,深色代 表蓝色,浅色代表红色) . 可是昨天晚上,有人已经给表格中的一些方格染上了颜色!现在Sam和Sara 非常生气.不过,他们想要知道是否可能给剩下的方格染上颜…
画图可知,每一行的状态转移到下一行只有两种:奇数列不变,偶数列^1:偶数列不变,奇数列^1 所以同一行相邻的变革染色格子要放到同一个并查集里,表示这个联通块里的列是联动的 最后统计下联通块数(不包括第一行的这一列已经被染色的情况)快速幂一下即可. #include<iostream> #include<cstdio> #include<vector> using namespace std; const int N=100005,mod=1e9; int n,m,k,f…
传送门 Description Sam和他的妹妹Sara有一个包含n × m个方格的表格.她们想要将其的每个方格都染成红色或蓝色.出于个人喜好,他们想要表格中每个2 × 2的方形区域都包含奇数个(1 个或 3 个)红色方格.例如,右图是一个合法的表格染色方案(在打印稿中,深色代表蓝色,浅色代表红色) . 可是昨天晚上,有人已经给表格中的一些方格染上了颜色!现在Sam和Sara非常生气.不过,他们想要知道是否可能给剩下的方格染上颜色,使得整个表格仍然满足她们的要求.如果可能的话,满足他们要求的染色…
很有意思的一道题,所以单独拿出来了. 完整分享看 这里 题目链接 luogu 题意 有一个包含 \(n \times m\) 个方格的表格.要将其中的每个方格都染成红色或蓝色.表格中每个 \(2 \times 2\) 的方形区域都包含奇数个( \(1\) 个或 \(3\) 个)红色方格.例如,下面是一个合法的表格染色方案(R 代表红色,B 代表蓝色): B B R B R R B B B B R R B R B 表格中的一些方格已经染上了颜色.求给剩下的表格染色,使得符合要求的方案数. 思路 每…