首页 > 其他分享 >正负消除问题

正负消除问题

时间:2024-04-16 21:56:30浏览次数:17  
标签:最后 一行 底角 问题 正负 一列 对角线 2n 消除

题意:

有一个 \((2n+1)\) 大小的正方形,每个位置放着 + 或 -,每次可以选取一个排列 \(p_i\),将 \((i, p_i)\) 改变状态。

证明:一定可以使得最后 - 不超过 \(2n\) 个。

思路:

这个操作比较复杂,我们先考虑简化。

不难想到用两次操作一起来抵消某些操作,经过观察,我们发现两次操作可以使得的一个矩形的四个角颜色反转。

借助这个观察,我们可以通过消除除了最后一行最后一列之外的 - 使得只有最后一行最后一列有 -,其它都是 +。

这样就小于等于 \(4n+1\)。

继续简化。

我们考虑主对角线,不难发现,如果最后一行的某个 - 列编号和最后一列某个 - 行编号相同,我们可以通过底角和主对角线构造矩形,消去这两个 -。

这样我们把原图剖分成 \(2n\) 个 r 字形和一个底角,每个 r 字形都最多一个 -,答案已经小于等于 \(2n+1\) 了。

考虑如何消去底角的 -。

如果最后一行最后一列同时有,可以组成一个矩形使得三个角都是 -,可以减少到 \(2n-1\)。

否则,我们不妨设只有最后一列和主对角线有,显然每一行恰好一个。

我们运用一次最根本的操作,消去主对角线,这时候就是若干行有 2 个,若干行没有。

这时候只用选取两行便能完成一次消除。

考虑到最差情况消去主对角线后还剩 \(2n+2\) 个,消去以此减少 2 个,刚好是 \(2n\) 个。

很有意思的一道题。

标签:最后,一行,底角,问题,正负,一列,对角线,2n,消除
From: https://www.cnblogs.com/rlc202204/p/18139303

相关文章

  • 解决禁用启用按钮不管用的问题
     这两个不一样导致前端没办法更改状态所以我用了JacksonObjectMapper使用这个实现JAVA对象转换为json对象publicclassJacksonObjectMapperextendsObjectMapper{publicstaticfinalStringDEFAULT_DATE_FORMAT="yyyy-MM-dd";publicstaticfinalString......
  • 初次使用SpringBoot3遇到的一些问题
    打开网址https://start.spring.io/  选择版本依赖等信息 本机环境原先装了个jdk8,由于SpringBoot3最低支持jdk17,所以本机环境上又装了个jdk17   https://www.oracle.com/java/technologies/downloads/#java17出于怀旧,jdk8还保留着,并且环境变量还是jdk8,只是在idea里吧......
  • 洛谷题单指南-数学基础问题-P1403 [AHOI2005] 约数研究
    原题链接:https://www.luogu.com.cn/problem/P1403题意解读:计算1~n每个数的约数个数之和。解题思路:1、数学方法1~n的约数范围也在1~n,要计算每个数的约数个数之和可以从约数出发,比如约数是x,那么在1~n中一共有n/x个数包含x这个约数x从1一直枚举到n,就可以得出每个约数是多少个......
  • 洛谷题单指南-数学基础问题-P3601 签到题
    原题链接:https://www.luogu.com.cn/problem/P3601题意解读:求l~r范围内所有qiandao(x)之和,qiandao(x)为小于等于x的数中,与x不互质的数的个数。注意取模。解题思路:欧拉函数定义:phi(x)=x*(1-1/p1)*(1-1/p2)*...*(1-1/pn),p1,p2...pn为x的所有质因子其中:phi(x)表示1~x中所......
  • uniapp踩坑:编译H5解决浏览器跨域问题
    uniapp编译到app是不存在跨域问题的,但是编译到H5就会有跨域问题。记录一下工作中遇到跨域及解决跨域方法方法一:直接编译Hbuilder内置浏览器,能解决跨域,但是内置浏览器调试没有谷歌爽方法二:在manifest.json文件中配置跨域,该方法类似vue.config.js中的devServer 步骤一"......
  • 工作中遇到的问题
    1.封装的图片上传组件,传值进去监听不到,一开始考虑是动态表单异步生成数据,一是不是响应式或者是失去响应式,后面排查到是监听属性的懒监听2.父组件调取了更新接口,子组件没有改变,这是需要手动强制刷新子组件,方法:动态组件is,v-if销毁,:key触发重新渲染,this.$foreUpdate触发子组件更......
  • jenkins的搭建及问题处理
    Jenkins搭建第一步本文讲述的本人搭建Jenkins的流程及遇到的坑及处理方法1.搭建Linux操作系统为sentosJenkins版本为24稳定版操作命令:sudowget-O/etc/yum.repos.d/jenkins.repohttps://pkg.jenkins.io/redhat-stable/jenkins.reposudorpm--importhttps://pkg.jenkin......
  • Chrome跨域问题:查看图片报错has been blocked by CORS policy: The request client is
    Chrome跨域问题:hasbeenblockedbyCORSpolicy:Therequestclientisnotasecurecontextandtheresourceisinmore-privateaddressspaceprivate已被CORS策略阻止:请求客户端不是安全上下文,资源位于更私有的地址空间私有问题原因:公网资源(访问者)访问私网资源......
  • mysql5.7 dump GTID一致性的问题
    利用mysqldump导出数据时提示warning,ApartialdumpfromaserverthathasGTIDsubt@ubt-All-Series:~$mysqldump-uroot-psdxdb>sdxdb.sqlWarning:ApartialdumpfromaserverthathasGTIDswillbydefaultincludetheGTIDsofalltransactions,eventhoseth......
  • 一个简单的问题
    \(Someone\,\,You\,\,Loved\)I'mgoingunderandthistimeIfearthere'snoonetosavemeThisallornothingreallygotawayofdrivingmecrazyIneedsomebodytohealSomebodytoknowSomebodytohaveSomebodytoholdIt'seasy......