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. mysql错误:this authentication plugin is not supported
  2. Gentoo 安装日记 15 (配置内核 :固件驱动..文件系统以及其他)
  3. sudo: apt-get:找不到命令_Linux重复执行历史命令方法详解
  4. SpringMVC注解解析
  5. sublime主题安装
  6. mysql工作台安装使用_如何安装MySQL工作台?
  7. laravel5.5 php7,ubuntu 16.04+nginx+mysql+php7.1+laravel5.5环境
  8. Vue 学习笔记(3)路由的基本使用 结合 SpringBoot
  9. matlab常用误差分析绘图函数
  10. python的哲学内容_python 哲学或者说文化
  11. Build Settings发布设置
  12. java excel 操作方式_java excel兩種操作方式
  13. Linux-服务器管理操作
  14. 电脑查看曾经连接上的wifi密码
  15. 18:(基于对抗的学习)Learning a Self-Expressive Network for Subspace Clustering
  16. C. Multiples of Length(构造)
  17. 【千锋Python2205班8.29笔记-day06-冒泡排序和字符串基础】
  18. K8S查看容器日志、进入容器内部
  19. 使用微信小程序做一个简易的下拉框,无动画效果,纯原生写法(下拉列表框)
  20. 下载 | mqtt4aliyun 阿里云 IoT 物联网 设备模拟器 Mac , Windows版本

热门文章

  1. swagger生成对应的客户端、服务端代码
  2. Mac安装并破解OmniGraffle7
  3. 爱家Aijiacms高端大型房产门户系统V9源码+带手机端
  4. arcgis坐标系未定义_科学网—ArcGIS中的坐标系:基本概念和常用操作 - 李郎平的博文...
  5. 计算机数据采集 的优点,数据采集器的作用_数据采集器硬件特点
  6. springboot数据库敏感数据加密解密
  7. leetcode_91.解码方法
  8. 孙陶然:只有不到十分之一的人适合创业
  9. 【SAP Abap】记录一次增强开发之销售交货开票VF04增强
  10. Unity Shader入门学习(5):基础屏幕后处理