当前位置: 首页 > news >正文

To_Heart—题解——[SCOI2012]奇怪的游戏

题意

link.

给定一个 n×mn\times mn×m 的棋盘,每次操作可以选择两个相邻的格子,让这两个各自上的数都 +1。问最少多少次操作使得所有格子的数相等。如果永远不行则输出-1。

题解

因为相邻两个格子进行操作,而且是方格,所以很容易想到黑白染色(好久没做题了这个都想不到了/kk)。

黑白染色后发现如果黑色格子数量等于白色格子数量,那我们可以转换成二分图网络流模型,这部分应该是个很常见的 trick,二分一下操作次数判断是否满流,然后无解的判断在于一开始黑白两种格子的权值和是否相等。

但是但是如果黑色格子数量与白色不相等呢?这时候其实可以直接确定最后的每个格子的值。

假设白色格子有 www 个,权值和为 WWW;黑色格子有 bbb 个,权值和为 BBB。再假设最后每个格子的权值为 xxx,那么有:

w×x−W=b×x−Bw\times x-W=b\times x-Bw×xW=b×xB

因为次数是相等的。转换一下得到:

x=B−Wb−wx=\frac{B-W}{b-w}x=bwBW

然后因为 b≠wb\neq wb=w,所以这个 xxx 可以直接解出来。

那么我们直接用二分图那个来判断一下是否有解就行了。

http://www.lryc.cn/news/15663.html

相关文章:

  • Spring Boot Hello World 基于 IDEA 案例详解
  • 基于机器学习的异常检测与分析技术
  • pytest进阶之html测试报告
  • 劳特巴赫仿真测试工具Trace32的基本使用(cmm文件)
  • 盘点四种自动化测试模型实例及优缺点
  • 【论文阅读】SCRFD: Sample and Computation 重分配的高效人脸检测
  • Debezium报错处理系列之四十七:Read only connection requires GTID_MODE to be ON
  • 关于float(b)类型数据类型的精度的学习
  • 哪种类型的网络安全风险需要进行渗透测试?
  • ur3+robotiq ft sensor+robotiq 2f 140配置gazebo仿真环境
  • Vue3后台管理系统(四)SVG图标
  • 【收集】2023年顶会accepted papers list(NeurIPS/CVPR/ICML/ICLR/ECCV/AAAI/IJCAI/WWW...)
  • 空闲态LTE到NR重选优先级介绍
  • 数据结构与算法:Map和Set的使用
  • C语言——动态内存管理
  • Docker安装Grafana
  • 数据结构(四):树、二叉树、二叉搜索树
  • 040、动态规划基本技巧(labuladong)
  • html笔记(一)
  • 索引的情况
  • Verilog 学习第五节(串口发送部分)
  • 破解遗留系统快速重构的5步心法(附实例)
  • 信号量(上)实验
  • 阿里5年,一个女工对软件测试的理解
  • 前端练习项目
  • sql复习(set运算符、高级子查询)
  • 整车电源的几种模式:OFF/ACC/RUN/CRANK
  • 踩了大坑:wordpress后台 无法将上传的文件移动至wp-content
  • page cache设计及实现
  • 使用seata来解决分布式事务