首页 > 其他分享 >P5427 [USACO19OPEN] Left Out S

P5427 [USACO19OPEN] Left Out S

时间:2023-07-18 11:24:11浏览次数:39  
标签:USACO19OPEN 一行 Out 做法 P5427 Left

P5427 [USACO19OPEN] Left Out S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)   你有个01矩阵,每次可翻转一行或一列,问能否使得最后只有一个0或1。其中翻转指1变0,0变1。   做法基本上都是取第一行第一列给他全部翻成0。这个是一定可以办到的。你只需要找1的位置翻掉那一行/列即可。  该图来自洛谷 完了之后答案要么在红色,要么紫要么黄。 1、红:此时黄色区域全为1。显然紫各翻一次即可全1,但红无法做到。 2、黄:黄区只有一个1。就是他。 3、紫:黄区有一行/列为1。翻那行/列,紫区就会有一个1。就是他。 4、如果都不满足,就无解。  

Q:一定要翻第一行第一列吗?
A:不一定。任意一行一列都可。反正就那意思。
Q:为什么先要这样翻?为什么后面就不能这样翻而是直接讨论了?
A:因为第一次这样翻,可以保证做到全部变0。而后面这样翻必定会破坏先前的。所以我们这样做实际上是添加了一个限制条件,以遏制一开始的混乱局面,使得矩阵条例清晰、以便我们下一步更加接近答案。显然,我们的做法就是分类进行讨论。
Q:还是有点不明白怎么办?
A:凉拌。下来再想想吧,已经没话说了。
Q:为什么黄色部分不满足上述三条件之一就一定无解?如果黄色区域还是一团乱七八糟的,就没有其他做法了吗?
A:因为答案只可能在这三区之中,而三区有解的条件我们已经得出了。不符合这三种条件的,难道答案会在三区之外?。很显然没有别的做法了,因为黄色区域再翻只会破坏一开始的红紫区。你搞来搞去,反正做法还不就是找一行一列来搞上述步骤。现在明白了吗?
Q:这个做法是怎样想到的?
A:我认为,就是分类讨论。本身我们拿到这个题的时候,他是有N种复杂难以想象的情况的。但是我们可以想办法把这个大问题分成一些我们可以容易解决的小问题,也就是分类。将答案的全部分成不同类别讨论,化繁为简。
Q:但是分红黄紫区域这种是咋想到的?
A:这可能是很好想到的,但思维题的事情总是抽象的。多做题去解决这个疑问吧。
 

标签:USACO19OPEN,一行,Out,做法,P5427,Left
From: https://www.cnblogs.com/DaisySunchaser/p/17562378.html

相关文章

  • 题解 P5426 [USACO19OPEN]Balancing Inversions G
    来一篇简单易懂的良心题解。由于数值不是\(0\)就是\(1\),我们可以考虑将逆序对的统计方式化简。以左区间为例,设\(x\)为\(1\)的个数,\(p_i\)为第\(i\)个\(1\)的坐标,则逆序对个数为\(\sum\limits_{i=1}^{x}n-p_i-(x-i)\)。也就是\((n-x)\cdotx+\frac{x\cdot(x+1)}{......
  • 1205 - Lock wait timeout exceeded; try restarting transaction
    参考:https://blog.csdn.net/qq_52466976/article/details/127808605报错是因为有表数据修改但是没提交,常见是Navicat上操作后没打勾提交导致的showFULLPROCESSLIST;显示正在操作的进程 解决:关掉这个操作的进程,根据ip定位一下 ......
  • 泛微ecology FileDownloadForOutDoc-前台sql注入
    厂商发布漏洞补丁Ecology_security_20230707_v9.0_v10.58.0.ziphttps://www.weaver.com.cn/cs/package/Ecology_security_20230707_v9.0_v10.58.0.zip?v=2023070700分析补丁文件ecology\WEB-INF\myclasses\weaver\security\rules\ruleImp\SecurityRuleForOutDocForSql.class......
  • 【不止IP】First In First Out FIFO核的使用
    一、VivadoFIFOIP核的使用方法和注意事项1、fifo核的两种工作模式:standardfifo、firstwordfallthrough,它们的功能和操作上有一些区别。(1)StandardFIFO(标准FIFO):在标准FIFO中,数据输入(写入)和数据输出(读取)是独立的操作。写入和读取操作是异步进行的,即它们可以在任何时刻......
  • this.$router.push 页面调整,不触发mounted,created的呢
    实际开发中,页面返回,再变更参数进入,怎么都不触发生命周期函数,解决方法如下:......
  • lightdb plpgsql函数in/inout参数示例
    lightdb支持oraclepl/sql以及开源postgresqlPlpgsql两种过程性(增强)语言。本文讲解pgpgsql函数出参的典型用法及限制。注:匿名块实际上走的是plorasql,而非plpgsql,即使调用的是plpgsql过程。本文我们假设对于函数、存储过程的调用是进行逻辑处理,而不是返回结果集或游......
  • LayoutRebuilder.ForceRebuildLayoutImmediate的使用和坑点
    LayoutRebuilder.ForceRebuildLayoutImmediate可以强制刷新layout组件,在使用layout和contentsizefitter组件制作如聊天框这种根据文字改变大小之类的UI时很好用。不过LayoutRebuilder.ForceRebuildLayoutImmediate有个坑点,其只有在物体激活时才会生效。......
  • idea进行maven打包的时候报错Cannot create resource output directory
    今天在进行maven打包的时候报错了Cannotcreateresourceoutputdirectory:XXXXX,之前遇到过,但是之前选择了重启就好了,这次真不想重启,有很多需要保存的shell页面原因呢就是target被占用,导致打包不了。但是我仔仔细细检查了,真的没这情况啊,没有任何文件夹占用了然后各种看,最后,在......
  • 150.vuerouter中的导航钩子函数
    150.vue-router中的导航钩子函数(1)全局的钩子函数beforeEach和afterEachbeforeEach有三个参数,to代表要进入的路由对象,from代表离开的路由对象。next是一个必须要执行的函数,如果不传参数,那就执行下一个钩子函数,如果传入false,则终止跳转,如果传入一个路径,则导航到对应的......
  • cpp class constructor initialize list and override cout
    //book.h#pragmaonce#include<iostream>classbook{public:intidx;std::uint64_tid;std::stringauthor;std::stringcontent;std::stringcomment;std::stringisbn;std::stringsummary;std::stringtopic;boo......