正解:构造

解题报告:

传送门传送门!

这题psj讲了俩做法,一个是最常见的解法,还一种还不知道484对的QAQ

然后先把psj讲的不知正确性的做法港下QwQ

大概就是说,第一个图,先把底给染完

然后对于所有的要染色的点一直往下拓展直到联通

然后对另一个图先取反一波然后加上原图

听起来似乎挺正确

显然重合部分是原图

而且似乎确实是联通的?

好神仙啊orzorz

我有时间打下补上代码QAQ

然后再把比较常见的那个给说了QwQ

这种解法就是,比较难想(,,,也可能是我比较菜QAQ

但是知道辽这种解法之后就不会忘了QwQ而且很简便

酱婶的,就是,首先我们构俩矩阵

一个只有奇数行涂了色

一个只有偶数行涂了色

然后这个时候它们的交集就是空集咯

然后这个时候,把所有要求的点在两个图上都给涂色

显然交集只会有要求的点且为联通的

好神仙啊我jio得,,,等写完了把代码放上来QAQ

然后通报一个hin烦躁的事儿,,,就是,这题,66个测试点嘛,然后我对了62个,,,好滴趴那也先这样趴,,,我枯了,,,,:D

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define rp(i,x,y) for(register ll i=x;i<=y;++i) int h,w;
bool QwQ[][]; inline ll read()
{
char ch=getchar();ll x=;bool y=;
while(ch!='-' && (ch>'' || ch<''))ch=getchar();
if(ch=='-')ch=getchar(),y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=getchar();
return y?x:-x;
}
inline char rdch()
{
char ch=getchar();while(ch!='.' && ch!='#')ch=getchar();return ch;
} int main()
{
h=read();w=read();
rp(i,,h)
rp(j,,w)
{
char ch=rdch();
if(ch=='#')QwQ[i][j]=;
}
rp(i,,h)
{
rp(j,,w)
{
if((i&) || QwQ[i][j])printf("#");
else printf(".");
}
printf("\n");
}
printf("\n");
rp(i,,h)
{
rp(j,,w)
{
if(!(i&) || QwQ[i][j])printf("#");
else printf(".");
}
printf("\n");
}
return ;
}

这是那个62/66的代码,,,

upd:

,,,我知道我哪儿错了QAQ

布星太难过了,灵巧为何如此菜啊QAQ

那我就把我的sd错误分享一下QAQ

就是,我上面这个思路听起来484real对!

但是它有个问题,,,

就是你怎么知道它是个联通的鸭QAQ

那如果刚好某行一个#也没有你怎么联通嘛QAQ

于是为了联通,我们就可以

让一个把左边一列全染了

另一个把右边一列全染了

然后就OK!成功达成!

等下放下正解代码QAQ

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define rp(i,x,y) for(register ll i=x;i<=y;++i) int h,w;
bool QwQ[][]; inline ll read()
{
char ch=getchar();ll x=;bool y=;
while(ch!='-' && (ch>'' || ch<''))ch=getchar();
if(ch=='-')ch=getchar(),y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=getchar();
return y?x:-x;
}
inline char rdch()
{
char ch;cin>>ch;return ch;
} int main()
{
h=read();w=read();memset(QwQ,,sizeof(QwQ));
rp(i,,h)
rp(j,,w){char ch=rdch();if(ch=='#')QwQ[i][j]=;} // cout<<endl<<endl; rp(i,,h)
{
printf("#");
rp(j,,w-)
{
if(i%== || QwQ[i][j]==)printf("#");
else printf(".");
}
if(QwQ[i][w]==)printf("#");else printf(".");
printf("\n");
}
printf("\n");
rp(i,,h)
{
if(QwQ[i][]==)printf("#");else printf(".");
rp(j,,w-)
{
if(i%== || QwQ[i][j] || j==w)printf("#");
else printf(".");
}
printf("#");
printf("\n");
}
return ;
}

这是正解!

AT2043 AND Grid 构造的更多相关文章

  1. 【题解】AT2043 AND Grid

    [题解]AT2043 AND Grid 我们考虑直接构造两个互补的图切分别联通的图,然后原图有的大家都有就构造完成了. #include<iostream> #include<cst ...

  2. C. Magic Grid 构造矩阵

    C. Magic Grid time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  3. [AGC004C] AND Grid [构造]

    题面: 传送门 思路: 一眼看上去是一道很迷的题目......直到我发现,红蓝色涂色的过程是互相独立的 而且最外围没有紫色 那么可以这样操作: 最左边一列全部红色,最右边一列全蓝 然后中间的一行红一行 ...

  4. Codeforces Global Round 9 B. Neighbor Grid (构造,贪心)

    题意:给一个\(n\)X\(m\)的矩阵,矩阵中某个数字\(k\)表示其四周恰好有\(k\)个不为0的数字,你可以使任意位置上的数字变大,如果操作后满足条件,输出新矩阵,否则输出NO. 题解:贪心,既 ...

  5. AtCoder刷题记录

    构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和 ...

  6. 论文翻译——Dynamic Pooling and Unfolding Recursive Autoencoders for Paraphrase Detection

    Dynamic Pooling and Unfolding Recursive Autoencoders for Paraphrase Detection 动态池和展开递归自动编码器的意译检测 论文地 ...

  7. Minieye杯第十五届华中科技大学程序设计邀请赛网络赛D Grid(简单构造)

    链接:https://ac.nowcoder.com/acm/contest/560/D来源:牛客网 题目描述 Give you a rectangular gird which is h cells ...

  8. AT2043 [AGC004C] AND Grid

    首先可以发现一个很简单的想法,因为最外层是一定不会有 \(\#\) 的,所以可以考虑让第一个网格图将每个连通块的最外层包起来,第二个网格图将就选择这个包内部的所有点即可. 但你发现这个想法是很难实现的 ...

  9. Eos开发——构造查询条件

    1.ajax 方式 var data = { orgid :orgid,year:year ,month: month,type:type,sortField:'sellEmpname' ,sortO ...

随机推荐

  1. [Python] Python 之 function, unbound method 和 bound method

    首先看一下以下示例.(Python 2.7) #!/usr/bin/env python # -*- coding: utf-8 -*- class C(object): def foo(self): ...

  2. SQL Server 索引结构及其使用(二)

    作者:freedk 一.深入浅出理解索引结构 改善SQL语句 很多人不知道SQL语句在SQL SERVER中是如何执行的,他们担心自己所写的SQL语句会被SQL SERVER误解.比如: select ...

  3. 怎么安装WinXP和Win7双系统

    本文介绍一下如何安装Windows XP和Windows 7双系统以及启动菜单问题的常用修复方法,推荐安装win7和xp双系统时最好采用从低版本到高版本的顺序进行,一般是XP下安装win7,另本文已假 ...

  4. 《转》python学习(11)-表达式和语句

    转自 http://www.cnblogs.com/BeginMan/p/3164600.html 一.Python语句 if语句.else语句.elif语句.条件表达式.while语句.for语句. ...

  5. 【数据库系列】MySql中的select的锁表范围

    由于InnoDB预设的是Row-Level Lock,只有明确指定主键的时候MySql才会执行Row lock,否则MySql将会执行Table Lock. 1.明确指定主键则是行锁 2.明确指定主键 ...

  6. Android6.0中PowerManagerService分析

    转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=30510400&id=5569393 概述 一直以来,电源管理是 ...

  7. vue项目打包之后页面空白解决办法

    之前项目遇到个情况,npm run build打包之后上传到服务器后,index.html打开一片空白,资源都加载了,但是就是不显示. 然后百度找了原因,修改了两处地方 一.修改 assetsPubl ...

  8. sencha touch 在线实战培训 第一期 第七节

    2014.1.13晚上8点过一点开的课 本期培训一共八节,前三堂免费,后面的课程需要付费才可以观看. 本节内容:             非结构化数据传输 通过js调取phonegap实现图片采集.上 ...

  9. Unity3D笔记 GUI 四、实现选项卡三

    一.代码: using UnityEngine; using System.Collections; /// <summary> /// 选项卡二 /// </summary> ...

  10. 你不可缺少的技能——Markdown编辑

    Markdown简介 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式.请不要被「标记」.「语言」所迷惑,Markdown 的语法十分 ...