D. White Lines

主要思路就是利用差分

对于行:如果在某一个点上,向右下角涂掉 k*k 的矩形能够使得新出现一行 “B” 那么就在这个点上 +1(这里的加 +1 需要利用差分来完成)

列同理,如果有现成的空白行,记录一下即可,最后直接加上

代码:

// Created by CAD on 2019/8/12.
#include <bits/stdc++.h>
using namespace std;
using ll=long long; char g[2005][2005];
int a[2005][2005];
int b[2005][2005];
void dif(int x1,int y1,int x2,int y2)
{
a[x1][y1]++,a[x2][y2]++;
a[x1][y2]--,a[x2][y1]--;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
int n,k;cin>>n>>k;
int ok=0;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
cin>>g[i][j];
for(int i=1;i<=n;++i)
{
int maxn=0,minn=0;
for(int j=1;j<=n;++j)
{
if(g[i][j]=='B')
{
maxn=j;
if(!minn)
minn=j;
}
}
if(minn==0) ok++;
else if(maxn-minn+1<=k)
dif(max(0,i-k)+1,max(0,maxn-k)+1,i+1,minn+1);
}
for(int j=1;j<=n;++j)
{
int maxn=0,minn=0;
for(int i=1;i<=n;++i)
{
if(g[i][j]=='B')
{
maxn=i;
if(!minn) minn=i;
}
}
if(minn==0) ok++;
else if(maxn-minn+1<=k) dif(max(0,maxn-k)+1,max(0,j-k)+1,minn+1,j+1);
}
ll ans=0;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
{
a[i][j]+=a[i-1][j]+a[i][j-1]-a[i-1][j-1];
ans=max(ans,1ll*a[i][j]+ok);
}
}
cout<<ans<<endl;
return 0;
}

White Lines的更多相关文章

  1. CodeForces 1200D White Lines

    cf题面 Time limit 1500 ms Memory limit 262144 kB 解题思路 官方题解 1200D - White Lines Let's consider a single ...

  2. D. White Lines

    D. White Lines 给定一个$n\times n$的$WB$矩阵,给定一个$k*k$的能把$B$变成$W$的橡皮擦,求橡皮擦作用一次后,全为$W$的行.列总数最大值 前缀和差分 #inclu ...

  3. CF1200D White Lines | 前缀和

    传送门 Examples input 1 4 2 BWWW WBBW WBBW WWWB output 1 4 input 2 3 1 BWB WWB BWB output 2 2 input 3 5 ...

  4. codeforce D. White Lines

    二维前缀和 给你一个n*n的矩阵,里面有两种字符,‘W’和‘B’,代表black 和white .其实这个矩阵就是一个方形画板,你有一个k*k的橡皮只能用一次,使k*k的矩阵里的B变成W,问完全空白的 ...

  5. CF1200D 【White Lines】

    退役快一年了之后又打了场紧张刺激的$CF$(斜眼笑) 然后发现$D$题和题解里的大众做法不太一样 (思路清奇) 题意不再赘述,我们可以看到这个题~~好做~~在只有一次擦除机会,尝试以此为突破口解决问题 ...

  6. cf1200 D White Lines(二维差分)

    题目大意 有一个大小为n的矩阵,每个1*1的单位为黑或白,我们可以用一个(只有一个)大小为k*k的白色矩阵覆盖,问:最多的时候有几条白线(横的全为白 或竖的全为白 即为白线). 思路 要想把一条线(以 ...

  7. PHP7函数大全(4553个函数)

    转载来自: http://www.infocool.net/kb/PHP/201607/168683.html a 函数 说明 abs 绝对值 acos 反余弦 acosh 反双曲余弦 addcsla ...

  8. Xamarin Studio在Mac环境下的配置和Xamarin.iOS常用控件的示例

    看过好多帖子都是Win环境装XS,Mac只是个模拟器,讲解在Mac环境下如何配置Xamarin Studio很少,也是一点点找资料,东拼西凑才把Xamarin Studio装在Mac上跑起来,如下: ...

  9. Total Commander 8.52 Beta 1

    Total Commander 8.52 Beta 1http://www.ghisler.com/852_b1.php 10.08.15 Release Total Commander 8.52 b ...

随机推荐

  1. python基础数据类型之一

    python属于解释型(有良好的平台兼容性,在任何环境中都可以运行,修改代码的时候直接修改就可以,可以快速部署,不用停机维护).动态的(python在编程之前不需要提前设定好各种变量,C语言之类的需要 ...

  2. [Next] 三.next自定义服务器和路由

    next 服务端渲染 实际上,next 一直都是执行的服务端渲染.npm start执行的是 next 自带的服务器来运行你的应用.next 是支持自定义服务器的,同时能够支持现有的路由和模式,你可以 ...

  3. luogu P2605 [ZJOI2010]基站选址

    luogu 先考虑朴素dp,设\(f_{i,j}\)表示在第\(i\)个村庄放了基站,一共放了\(j\)次,且只考虑前面村庄影响的答案.这里可以把\(j\)放在外面枚举,然后从\(f_{k,j-1}( ...

  4. luogu P5366 [SNOI2017]遗失的答案

    luogu 首先gcd为\(G\),lcm为\(L\),有可能出现的数(指同时是\(G\)的因数以及是\(L\)的倍数)可以发现只有几百个.如果选出的数要能取到gcd,那么对于每种质因子,都要有一个数 ...

  5. Java开发者想尝试转行大数据,学习方向建议?

      ​前言 相信很多Java开发者都对大数据有一定的了解,随着大数据时代的到来,也有很多Java程序员想要转行大数据.大数据技术中大多数平台使用的都是Java语言,因此,对于大数据技术的学习来说,Ja ...

  6. LLVM4.0与3.5编译phase对比

    说是LLVM4.0和3.5的对比,其实是Clang的4和3.5的对比.在调试Clang编译源码的过程中,发现-S选项在4.0和3.5中的处理不一样,后来使用命令验证了这个事情 jourluohua@j ...

  7. openCV3测试指南

    本文来源于https://docs.opencv.org/3.4.1/db/df5/tutorial_linux_gcc_cmake.html 经测试整理后发布 上一节安装完成了openCV,这一节进 ...

  8. Elasticsearch中文文档,内容不全

    注意 内容不全,这是观看中文文档进行操作的 文档地址 旧版中文文档,部分内容过期 https://www.elastic.co/guide/cn/elasticsearch/guide/current ...

  9. Darknet版YOLO安装与配置

    Darknet配置和安装 1. 安装显卡驱动 首先查看一下自己的电脑需要怎样的驱动,我们可以先到 http://www.nvidia.com/Download/index.aspx 查询下我们需要的是 ...

  10. 自定义Java Validator

    自定义Java Validator 在项目中,针对汉字的长度计算,数据库和java的计算方式不一致,需要重新处理下java 的 Validator,使其满足项目 建立自定义的 validator an ...