Problem - C - Codeforces

题意是给你一个01矩阵,按照画象棋的模式能不能把一个全部是0的矩阵变成给的矩阵

这题想的复杂了一点点,其实还好

这题明白了之后发现构造题的漂亮了

首先象棋是010...这种错开的形式,分析可得,最简单的构造方法是01 01的这样构造

所以对于每一个1而言0只会在上面或者左边

而对于一个连续的1来说左边或者上面必有0,除了

011111

111111的这种形式,因为最后一排的第一个1的0可以转化到上面

其实可以直接顺次找到1,然后01这样枚举

但是有连续的1存在,这样做就很麻烦了。现在才是构造的美

可以从最后一个开始(自己模拟一下顺序就知道了),如果碰到1直接加入01的这种(也不考虑上下了),考虑越多情况越复杂,直接限定一个。随后如果1在最边上也就是最左边,那就加入到上面的里面,一直往上走。

#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3,"Ofast","inline")
#define IOS ios::sync_with_stdio(false), cin.tie(0);
#include<iostream>
#include<map>
#include<set>
#include<cstdio>
#include<cstring>
#include<vector>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
typedef long long ll;
typedef pair<int,int> PAII;
const int N=2e6+10,M=5050,INF=0x3f3f3f3f,mod=998244353;
char ch[M][M];
struct mess{int x1,y1,x2,y2;
};
vector<mess> v;
int main(){//IOS; int T;//T=1;cin>>T;while(T--){v.clear();int n,m;cin>>n>>m;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>ch[i][j];if(ch[1][1]=='1'){cout<<"-1\n";continue;}int cnt=0;for(int i=n;i>=1;i--){for(int j=m;j>=1;j--){if(ch[i][j]=='1'){if(j>1) v.push_back({i,j-1,i,j});else v.push_back({i-1,j,i,j});}}}cout<<v.size()<<"\n";for(auto it:v) cout<<it.x1<<" "<<it.y1<<" "<<it.x2<<" "<<it.y2<<"\n";}  return 0;
}
/*
1的左边或者上面必须要有0
连续的1 */

C. Madoka and Childish Pranks #777 div2相关推荐

  1. Madoka and Childish Pranks(贪心)

    Madoka and Childish Pranks 题意 : 这题的意思有点难懂,大概题意是,原本有n ∗ m 的网格,然后每次操作只能按棋盘图案操作,就是只能画一个类似棋盘的图案,比如样例1,第一 ...

  2. 【CF #777 div2】A—D

    A. Madoka and Math Dad 题解:拆分成2.1.找到能生成的最大值即可. #include<bits/stdc++.h> using namespace std; con ...

  3. 【CF #777 div2】A-C

    A. Madoka and Math Dad 题目 分析 给一个n,构造一个数字,使这个数字每位和为n且这个数字相邻各位不能相等,且这个数是所有数中最大的. 要使数字最大,肯定要使位数尽可能的多,而且 ...

  4. Codeforces Round #777 (Div. 2) 简训

    Codeforces Round #777 (Div. 2) 简训 导语 涉及的知识点 题目 A Madoka and Math Dad B Madoka and the Elegant Gift C ...

  5. Codeforces Round #777 (Div. 2) 题解

    Codeforces #777 题解 这次带上了大佬前来验题xs 公开大佬珍贵的代码资源供参考 TOC A.Madoka and Math Dad B.Madoka and the Elegant G ...

  6. Codeforces Round #777 (Div. 2)【未完结】

    老年选手,做个签到就溜了. 现在才开始补题,cf分一直上不去. 目录 A. Madoka and Math Dad[构造] B. Madoka and the Elegant Gift[连通块] C. ...

  7. Codeforces Round #777 (Div. 2)(A~C)

    原题链接: A. Madoka and Math Dad B. Madoka and the Elegant Gift C. Madoka and Childish Pranks A. Madoka ...

  8. Codeforces Round #777 (Div. 2)

    7月19日 A Madoka and Math Dad B Madoka and the Elegant Gift C Madoka and Childish Pranks A Madoka and ...

  9. 【记录CF】Codeforces Round #777 (Div. 2) A~C 题解

    目录 杂谈 A. Madoka and Math Dad B. Madoka and the Elegant Gift C. Madoka and Childish Pranks 杂谈 又是一场离谱掉 ...

最新文章

  1. 链表问题1——打印两个有序链表的公共部分
  2. iOS开发网络篇—搭建本地服务器(待整理)
  3. 面试和学习必备--Java多线程
  4. 笔记-常见考点-常见问题原因分析
  5. 聊几个与赚钱相关的小事情
  6. 易语言 服务器抓包,易语言抓包获得地址实现TP路由器登陆的代码
  7. 手动选择显示_QGIS 二次开发笔记(2)——显示图层
  8. (转载)Qt中MOC的一些限制
  9. mysql003三表查询.三表查询.自链接查询
  10. [给ASP.NET 初学者的话]不要练功练了三年,才发现自己必须「砍掉重练」!....学习ASP.NET之前,请先把自己杯中的水倒掉...
  11. 大话软件开发与开车的共同点
  12. html 文本溢出,确定HTML元素的内容是否溢出
  13. Android DDMS的打开以及查看手机页面布局层次
  14. endwith php,辅助函数 | 进阶系列 | Laravel 7 中文文档
  15. 柯桥托业TOEIC考试和PETS哪个含金量高?
  16. 超详细指南——开启ssh服务
  17. 【网页图标】favicon.ico文件的设置
  18. Netty源码解析-Netty内存泄露检测
  19. 2008 R2 Remote Desktop Server driver RDPDR.sys cannot be started, error 577
  20. 爱奇艺自媒体平台如何入驻,被封怎么办?

热门文章

  1. 黑白照片如何变彩色?建议收藏这些方法
  2. 塔米狗分享|疫情时期,全球企业并购的5大建议
  3. Nodejs (一)
  4. labview—word报表使用
  5. DataWarehouse 数据仓库
  6. Parallels Desktop2023最新版免费虚拟机软件
  7. 竞争学习神经网络详解
  8. 【计算理论】下推自动机 PDA ( 上下文无关语言 CFL 的 泵引理 | 泵引理反证示例 | 自动机扩展 )
  9. 2022年,反思你的 HRIS 是不是为绩效管理而构建
  10. 电视显示正在接入或无法接入认证服务器,长虹网络电视无法连接服务器,怎么回事?-长虹电视接入网络障碍...