jzoj6003. 【THUWC2019模拟2019.1.16】Square (乱搞)
题面

题解
不难发现,如果一行最后被染色,那么这行的颜色肯定一样,如果倒数第二个被染色,那么除了被最后一个染色的覆盖的那一部分剩下的颜色肯定一样
于是题目可以转化为每一次删去一行或一列颜色相同的,问最少几次删完
首先判断能不能删完。因为可行性和删的顺序没有关系,我们可以直接\(bfs\),能删就删,看最后是否有剩下
然后是最少的次数,首先行和列中肯定有一个是删满的
我们假设行全都删掉了,那么就是要求最多有多少列不用删。对于这些不用删的列,它们肯定颜色是一样的,所以现在就转化为最多有多少列是相同的。行同理
设最多有\(x\)行相同,\(y\)列相同,那么答案就是\(n+m-max(x,y)\)
然而咱有个比较迷的地方,本题中的相同似乎是指两种颜色的个数相同而不是对应位置颜色相同……按对应位置去做反而会\(WA\)……咱也不是很明白是怎么回事
//minamoto
#include<bits/stdc++.h>
#define R register
#define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i)
#define fd(i,a,b) for(R int i=a,I=b-1;i>I;--i)
#define go(u) for(int i=head[u],v=e[i].v;i;i=e[i].nx,v=e[i].v)
template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,1:0;}
using namespace std;
const int N=3005;
char s[N][N];int n,m,mp[N][N],rvis[N],cvis[N],r[N][2],c[N][2];
int sum[N],res;
void calc(){
fp(i,1,n){
int cnt=0;
fp(j,1,m)cnt+=mp[i][j];
++sum[cnt],cmax(res,sum[cnt]);
}
fp(i,0,m)sum[i]=0;
fp(j,1,m){
int cnt=0;
fp(i,1,n)cnt+=mp[i][j];
++sum[cnt],cmax(res,sum[cnt]);
}
}
bool ck(){
bool flag=1;
int sn=n,sm=m;
while(flag){
flag=0;
fp(i,1,n)if(!rvis[i]){
fp(k,0,1)if(!r[i][k]){
--sn,rvis[i]=1,flag=1;
fp(j,1,m)--c[j][k^1];
}
}
fp(j,1,m)if(!cvis[j]){
fp(k,0,1)if(!c[j][k]){
--sm,cvis[j]=1,flag=1;
fp(i,1,n)--r[i][k^1];
}
}
}
return sn!=0&&sm!=0;
}
int main(){
// freopen("testdata.in","r",stdin);
freopen("square.in","r",stdin);
freopen("square.out","w",stdout);
scanf("%d%d",&n,&m);
fp(i,1,n)scanf("%s",s[i]+1);
fp(i,1,n)fp(j,1,m)mp[i][j]=(s[i][j]=='R'?1:0),++r[i][mp[i][j]],++c[j][mp[i][j]];
if(ck())return puts("-1"),0;
calc();
printf("%d\n",n+m-res);
return 0;
}
jzoj6003. 【THUWC2019模拟2019.1.16】Square (乱搞)的更多相关文章
- 【NOIP模拟赛】与非 乱搞
biubiu~~~ 正解是线段树维护真值表,但是我觉得对于这道题来说乱搞就够了....... 我们发现如果我们把每一个数都一开始取反就会发现对于最后结果来说 x=x^1,x nand x=x|x ,x ...
- [NOIP模拟赛][并没有用二分][乱搞AC]
圆圈舞蹈 [问题描述] 熊大妈的奶牛在时针的带领下,围成了一个圆圈跳舞.由于没有严格的教育,奶牛们之间的间隔不一致. 奶牛想知道两只最远的奶牛到底隔了多远.奶牛A到B的距离为A顺时针走和逆时针走,到达 ...
- [CSP-S模拟测试]:凉宫春日的忧郁(乱搞)
题目传送门(内部题101) 输入格式 第一行输入一个整数$T$,表示数据组数. 接下来$T$行,每行两个数$X,Y$,表示$T$组数据. 输出格式 输出共有$T$行,对于每一组数据,如果$X^Y\le ...
- @CSP模拟2019.10.16 - T3@ 垃圾分类
目录 @description@ @solution@ @accepted code@ @details@ @description@ 为了保护环境,p6pou建设了一个垃圾分类器. 垃圾分类器是一个 ...
- jzoj6008. 【THUWC2019模拟2019.1.18】Sequence (矩阵加速)
题面 茉优最近研究发现,一个人的想愿能力可以认为是字符串S的一个子串S[l,r],而连接值可以认为是这个子串的本质不同子序列个数.现在她想验证她的结论是否正确,于是她给了你Q个询问,希望你帮她来计算, ...
- jzoj6009. 【THUWC2019模拟2019.1.18】Counting (dp)
Description 羽月最近发现,她发动能力的过程是这样的: 构建一个 V 个点的有向图 G,初始为没有任何边,接下来羽月在脑中构建出一个长度为 E 的边的序列,序列中元素两两不同,然后羽月将这些 ...
- [CSP-S模拟测试]:最小值(DP+乱搞)
题目背景 $Maxtir$更喜欢序列的最小值. 题目传送门(内部题128) 输入格式 第一行输入一个正整数$n$和四个整数$A,B,C,D$. 第二行输入$n$个整数,第$i$个数表示$a_i$. 输 ...
- [NOIP2018模拟赛10.16]手残报告
[NOIP2018模拟赛10.16]手残报告 闲扯 炉石乱斗模式美滋滋啊,又颓到好晚... 上来T2先敲了树剖,看T1发现是个思博DP,然后没过大样例,写个暴力发现还是没过大样例!?才发现理解错题意了 ...
- 【2018.06.26NOIP模拟】T1纪念碑square 【线段树】*
[2018.06.26NOIP模拟]T1纪念碑square 题目描述 2034年,纪念中学决定修建校庆100周年纪念碑,作为杰出校友的你被找了过来,帮校方确定纪念碑的选址. 纪念中学的土地可以看作是一 ...
随机推荐
- 编写你的第一个web应用程序1
在shell中运行以下命令来检查django是否已安装及其版本 python -m django --version 如果django已经安装,你应该看到安装的版本号,如果还没有安装,你会看到一个‘n ...
- REST、DRF(View源码解读、APIView源码解读)
一 . REST 前言 1 . 编程 : 数据结构和算法的结合 .小程序如简单的计算器,我们输入初始数据,经过计算,得到最终的数据,这个过程中,初始数据和结果数据都是数据,而计算 ...
- mysql 创建用户与授权
权限管理 我们都知道,最高权限管理者是 root 用户 , 它拥有着最高的权限操作,包括 : select(查询) ,update(修改) , delete(删除,有事没事都不要用这个,反正也不能给这 ...
- leetcode 859. Buddy Strings
Given two strings A and B of lowercase letters, return true if and only if we can swap two letters i ...
- WINFROM中自定义控件之绑定数据即时更新
相信在WINFROM中写自定义控件或者用户控件,很多人都多多少少用过点 最近发现一个用户控件,绑定的数据源没办法自动更新,其实以前处理过这类的问题,可是这次遇到又花了1个多小时,所以决定记下来 在用户 ...
- java入门了解05
1.模板模式 (一)需求:解决默写事情有固定模式,但有时内部会发生变化,此时就需要应用模板模式编写此过程 从而解决事情的流程依然可以别使用,这就是模板模式的好处(类似我们的个人简历模板) (二)步骤: ...
- JS遍历ChexkBoxList
var cboxs = $("#cblAuth input[type=checkbox]"); ; ; i < cboxs.length; i++) { if (cboxs[ ...
- linux shell date 时间运算以及时间差计算方法
最近一段时间,在处理Shell 脚本时候,遇到时间的处理问题. 时间的加减,以及时间差的计算. 获取当前时间戳 date +%s . 时间加减 这里处理方法,是将基础的时间转变为时间戳,然后,需要增加 ...
- NO0:重新拾起C语言
因工作所需,重新捡起C语言,之前在学校里有接触过,但现在已经忘的一干二净了,现决定重新开始学习,为工作,为生活. 以<标准 C程序设计 第5版>的课程进行基础学习,同时以另外两本书为辅助, ...
- Loading 遮蔽层 简单实现。
<!--背景div--><div id="bg" class="bg" style="display:none;text-align ...