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. Github 添加公匙 出错 (我真傻 真的)

    网上一搜一箩筐 之前配了很多次都没问题 重装系统后配了半天总是提示 github Key is invalid. You must supply a key in OpenSSH public key ...

  2. RuntimeError: Model class user.models.User doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.

    Django 2.x版本迁移数据库报这个错误,user表使用的Django的验证系统 本来就想改一下用户表的表名,莫名的报了个这个错误,在网上找到了解决办法 打开user应用模块下的apps.py文件 ...

  3. leetcode中等题

    # Title Solution Acceptance Difficulty Frequency     1 Two Sum       44.5% Easy     2 Add Two Number ...

  4. ion-icon

    观察默认的使用 关于Ion-icon 图标的自定义,首先,看一看默认内置的图标的显示,是怎么来的 可以看到默认的路径为:/svg/ios-xxx.svg 自定义实现 那么这种路径是哪里来的,明显是an ...

  5. YOLOv3:Demo needs OpenCV for webcam images

    Compiling With CUDA And OpenCV: change the Makefile in the base directory to read: GPU=1 OPENCV=1 ma ...

  6. 7、Linux权限管理-基本权限

    1.权限概述 1.1.什么是权限? 我们可以把它理解为操作系统对用户能够执行的功能所设立的限制,主要用于约束用户能对系统所做的操作,以及内容访问的范围,或者说,权限是指某个特定的用户具有特定的系统资源 ...

  7. 个人小应用服务器安装搭建,HP 360p Gen9 使用winpe安装centos[一]

    以前用aws的时候使用的ec2, 里面可选的windows server搭配umbraco的cms做了自己的个人网站,主要是当年项目需要,使用aws,我也办了国际币种卡,在组里各种联系亚马逊开服务,后 ...

  8. win7安装xmanager报错error1303、err1317

    安装xmanager时出现的一些问题,记录如下. 1.安装xmanager时,提示error1303.如下图,按照百度的办法,创建相应的文件夹后,点击重试. 2.重试后提示err1317,如下图所示. ...

  9. Django学习系列12:把Python变量传入模板中渲染

    从视图的Python代码中把变量传入HTML模板. 模板中使用哪种句法引入Python对象,要使用的符号{{...}},它会以字符串的形式显示对象: <html> <head> ...

  10. [转帖]微軟将从 .NET 4 以后的版本弃用 System.Data.OracleClient

    转帖--微軟将从 .NET 4 以后的版本弃用 System.Data.OracleClient Posted on -- : eaglet 阅读() 评论() 编辑 收藏 原贴 http://www ...