码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C. Madoka and Childish Pranks #777 div2


    Problem - C - Codeforces

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

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

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

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

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

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

    011111

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

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

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

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

    1. #pragma GCC optimize(1)
    2. #pragma GCC optimize(2)
    3. #pragma GCC optimize(3,"Ofast","inline")
    4. #define IOS ios::sync_with_stdio(false), cin.tie(0);
    5. #include
    6. #include
    7. #include
    8. #include
    9. #include
    10. #include
    11. #include
    12. #include
    13. #include
    14. using namespace std;
    15. typedef long long ll;
    16. typedef pair<int,int> PAII;
    17. const int N=2e6+10,M=5050,INF=0x3f3f3f3f,mod=998244353;
    18. char ch[M][M];
    19. struct mess{
    20. int x1,y1,x2,y2;
    21. };
    22. vector v;
    23. int main(){
    24. //IOS;
    25. int T;
    26. //T=1;
    27. cin>>T;
    28. while(T--)
    29. {
    30. v.clear();
    31. int n,m;
    32. cin>>n>>m;
    33. for(int i=1;i<=n;i++)
    34. for(int j=1;j<=m;j++)
    35. cin>>ch[i][j];
    36. if(ch[1][1]=='1')
    37. {
    38. cout<<"-1\n";
    39. continue;
    40. }
    41. int cnt=0;
    42. for(int i=n;i>=1;i--)
    43. {
    44. for(int j=m;j>=1;j--)
    45. {
    46. if(ch[i][j]=='1')
    47. {
    48. if(j>1) v.push_back({i,j-1,i,j});
    49. else v.push_back({i-1,j,i,j});
    50. }
    51. }
    52. }
    53. cout<size()<<"\n";
    54. for(auto it:v) cout<" "<" "<" "<"\n";
    55. }
    56. return 0;
    57. }
    58. /*
    59. 1的左边或者上面必须要有0
    60. 连续的1
    61. */

  • 相关阅读:
    ffmpeg跨平台arm编译-ubuntu
    cadence virtuoso layout drc error
    [附源码]计算机毕业设计springboot校园生活服务平台
    【前端学java】复习巩固-Java中的对象比较(14)
    通过Git Bash将本地文件上传到本地github
    【从跳板机ssh到内网目标服务器】配置vscode实现远程连接
    在线docker命令大全中文版
    安全容器:gVisor、Firecracker、LXC性能对比
    高效使用浏览器的5个小技巧,第1个技巧最实用
    基于大数据技术的健身用户消费分析系统
  • 原文地址:https://blog.csdn.net/m0_63305704/article/details/126346718
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号