AT2043 AND Grid 构造
正解:构造
解题报告:
这题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 构造的更多相关文章
- 【题解】AT2043 AND Grid
[题解]AT2043 AND Grid 我们考虑直接构造两个互补的图切分别联通的图,然后原图有的大家都有就构造完成了. #include<iostream> #include<cst ...
- C. Magic Grid 构造矩阵
C. Magic Grid time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- [AGC004C] AND Grid [构造]
题面: 传送门 思路: 一眼看上去是一道很迷的题目......直到我发现,红蓝色涂色的过程是互相独立的 而且最外围没有紫色 那么可以这样操作: 最左边一列全部红色,最右边一列全蓝 然后中间的一行红一行 ...
- Codeforces Global Round 9 B. Neighbor Grid (构造,贪心)
题意:给一个\(n\)X\(m\)的矩阵,矩阵中某个数字\(k\)表示其四周恰好有\(k\)个不为0的数字,你可以使任意位置上的数字变大,如果操作后满足条件,输出新矩阵,否则输出NO. 题解:贪心,既 ...
- AtCoder刷题记录
构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和 ...
- 论文翻译——Dynamic Pooling and Unfolding Recursive Autoencoders for Paraphrase Detection
Dynamic Pooling and Unfolding Recursive Autoencoders for Paraphrase Detection 动态池和展开递归自动编码器的意译检测 论文地 ...
- Minieye杯第十五届华中科技大学程序设计邀请赛网络赛D Grid(简单构造)
链接:https://ac.nowcoder.com/acm/contest/560/D来源:牛客网 题目描述 Give you a rectangular gird which is h cells ...
- AT2043 [AGC004C] AND Grid
首先可以发现一个很简单的想法,因为最外层是一定不会有 \(\#\) 的,所以可以考虑让第一个网格图将每个连通块的最外层包起来,第二个网格图将就选择这个包内部的所有点即可. 但你发现这个想法是很难实现的 ...
- Eos开发——构造查询条件
1.ajax 方式 var data = { orgid :orgid,year:year ,month: month,type:type,sortField:'sellEmpname' ,sortO ...
随机推荐
- iOS开发--UILabel可以显示\n
UILabel*label; //设置换行 label.lineBreakMode = UILineBreakModeWordWrap; label.numberOfLines = ; 换行符还是“\ ...
- 利用DB实现简单去重处理
业务需要针对某文件进行判重操作,用Perl实现如下 #!/usr/bin/perl my %h; s/\s+$// and $h{$_}++ while <>; print "$ ...
- 使用 requests 配置代理服务
(1) 如果我们一直用同一个IP去请求同一个网站上的网页,久了之后可能会被该网站服务器屏蔽,因此我们可以使用代理IP来发起请求,代理实际上指的就是代理服务器(2) 当我们使用代理IP发起请求时,服务器 ...
- codeforces水题100道 第十四题 Codeforces Round #321 (Div. 2) A. Kefa and First Steps (brute force)
题目链接:http://www.codeforces.com/problemset/problem/580/A题意:求最长连续非降子序列的长度.C++代码: #include <iostream ...
- 保存对象时碰到的问题-列名 'Discriminator' 无效
今天保存对象时碰到问题: {"列名 'Discriminator' 无效.\r\n列名 'Discriminator' 无效."} 百度了一下,百度找到的一个解决: http:/ ...
- C++空类
class Empty { public: Empty(); // 缺省构造函数 Empty( const Empty& ); // 拷贝构造函数 ~Empty(); // 析构函数 Empt ...
- css笔记 - 张鑫旭css课程笔记之 margin 篇
margin - 人若犯我,我必犯人! [margin地址](https://www.imooc.com/learn/680) 一.margin与容器尺寸的关系 relative可定位,但是不改变容器 ...
- cheerio ==> node中的jquery
三.cheerio ==> node中的jquery https://www.npmjs.com/package/cheerio $ npm install cheerio -- save 1 ...
- 伪随机数生成算法-梅森旋转(Mersenne Twister/MT)
今天主要是来研究梅森旋转算法,它是用来产生伪随机数的,实际上产生伪随机数的方法有很多种,比如线性同余法, 平方取中法等等.但是这些方法产生的随机数质量往往不是很高,而今天介绍的梅森旋转算法可以产生高质 ...
- POJ--1699 Best Sequence(DP+dfs)
Best Sequence Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5543 Accepted: 2188 Descrip ...