点向行列连边的网络流图优化成行列连边的二分图:CF1592F2

https://www.luogu.com.cn/problem/CF1592F2

做完F1,然后用1的结论来思考。

场上推了几个性质。首先op4的操作行列必然两两不同,所以op4最多 max ⁡ ( n , m ) \max(n,m) max(n,m) 次。然后手玩发现只有除 ( n , m ) (n,m) (n,m) 的三个格子都为1,op4才有意义。

然后猜了个网络流。每个点如果满足条件,就向行列连边。

在这里插入图片描述



但这样显得我非常愚蠢。

因为中间的点完全没用,直接行向列连边就变成二分图了…
在这里插入图片描述

	auto calc = [&] (int x, int y) -> int {return a[x][y]^a[x+1][y]^a[x][y+1]^a[x+1][y+1]; }; mf_graph<int>G(N*N); n=read(); m=read(); for(i=1; i<=n; ++i) {scanf("%s", str+1); for(j=1; j<=m; ++j) if(str[j]=='B') a[i][j]=1; }for(i=n; i>=1; --i) 	for(j=m; j>=1; --j) {v[i][j]=calc(i, j); sum+=v[i][j]; }S=n+m+1; T=S+1; for(i=1; i<n; ++i) if(v[i][m]) G.add_edge(S, i, 1); for(i=1; i<m; ++i) if(v[n][i]) G.add_edge(i+n, T, 1); for(i=1; i<n; ++i)for(j=1; j<m; ++j) if(v[i][j] && v[n][j] && v[i][m]) G.add_edge(i, j+n, 1); k=G.flow(S, T); p=v[i][j]; v[i][j]^=(k&1); 
//	printf("%d %d\n", sum, k); ans=min(sum, sum-k-p+v[i][j]); if(v[i][j] && k) ans=min(ans, sum-(k-1)); printf("%d", ans); 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/102092.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

发稿渠道和发布新闻的步骤和技巧,收藏!

在现代社会中&#xff0c;新闻的发布和传播起着至关重要的作用。通过新闻&#xff0c;人们可以获取及时的信息&#xff0c;了解社会动态和事件发展。而对于企业和组织来说&#xff0c;通过新闻发布可以宣传品牌、推广产品&#xff0c;增加曝光度&#xff0c;吸引目标受众的关注…

安卓-APP启动优化技术方案汇总

应用有三种启动状态&#xff1a;冷启动、温启动或热启动。每种状态都会影响应用向用户显示所需的时间。在冷启动中&#xff0c;应用从头开始启动。在另外两种状态中&#xff0c;系统需要将后台运行的应用带入前台。 我们建议您始终在假定冷启动的基础上进行优化。这样做也可以…

分享一下微信付费文章功能怎么做

微信付费文章功能是一种基于微信公众号的文章付费阅读模式&#xff0c;它可以帮助公众号运营者实现文章内容的变现&#xff0c;提高文章的阅读量和收益。本文将介绍微信付费文章功能的制作流程、功能特点、使用流程和推广策略&#xff0c;帮助读者了解如何制作一个高效的微信付…

java压缩图片几种方式及安装

Springboot集成GraphicsMagick - 掘金 Linux下安装GraphicsMagick_graphicsmagick linux-CSDN博客 GraphicsMagick在Linux环境的安装 和 im4java的配置_linux im4java-CSDN博客 GraphicsMagick的简单介绍、安装及结合im4java实现图片的压缩、裁剪、文字水印、格式转换功能&…

Postman历史版本下载

1. 下载对应版本的postman 历史版本下载 请把下面链接的"版本号"替换为指定的版本号&#xff0c;例如&#xff1a;8.8.0 Windows64位 ​https://dl.pstmn.io/download/version/版本号/win64​ Windows32位 https://dl.pstmn.io/download/version/版本号…

解决TensorRT加速推理SDXL出现黑图问题

文章目录 解决TensorRT加速推理SDXL出现黑图问题1. fp162. 更换vae 解决TensorRT加速推理SDXL出现黑图问题 一般产生黑图&#xff0c;仅需要修改下面两个问题即可解决。 1. fp16 将pipeline中的fp16修改为fp32。 在使用稳定扩散&#xff08;Stable Diffusion&#xff09;生…

基于图像的照明(IBL)简明教程

基于图像的照明基本上将图像中的所有像素视为光源。 通常&#xff0c;从全景高动态范围 (HDR) 图像创建的环境贴图&#xff08;通常是立方体贴图&#xff09;将用作纹理获取的源。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 假设阴影物体是不透明的&#xff0c;我们…

JVM(一)

字节码文件的组成: 基础信息:魔数&#xff0c;字节码文件对应的java版本号&#xff0c;访问表示public final以及父类和接口 常量池:保存了字符串常量&#xff0c;类或者是接口名&#xff0c;字段名&#xff0c;主要在接口中使用 字段:当前类或者是接口声明的字段信息 方法:当…

13 Java生产者是如何管理TCP连接的

为什么采用TCP连接 为什么采用TCP连接作为底层的通讯协议&#xff1f; 1.利用TCP协议本身的高级功能。比如多路复用请求和同时轮询多个连接的能力。 多路复用请求会在一个物理连接上创建多个虚拟连接&#xff0c;每个虚拟连接负责流转各自的数据流。 什么时候创建TCP连接 1.…

Spring之IoC

Spring的设计理念和整体架构 一句话概括就是&#xff1a;Spring是一个轻量级的、非侵入式的控制反转(IOC)和面向切面(AOP)的框架。 设计理念&#xff1a; 松散耦合&#xff1a; Spring鼓励开发者编写松散耦合的代码&#xff0c;通过依赖注入和接口抽象等方式来减少组件之间的…

蓝桥等考Python组别十八级002

第一部分:选择题 1、Python L18 (15分) 运行下面程序,输入30,输出的结果是( )。 t = int(input()) if t < 30: print(15) else: print(t // 15 * 2) 15401正确答案:B 2、Python L18 (15分)

系统架构设计:19 论数据挖掘技术的应用

目录 一 数据挖掘技术 1 数据挖掘的分类 2 数据挖掘的主要方法 一 数据挖掘技术 从技术角度看,数据挖掘可以定义为从大量的、不完全的、有噪声的、模糊的、随机的实际数据中提取隐含在其中的、人们不知道的、但又潜在有用的信息和知识的过程。</

DV SSL证书

随着网站越来越多&#xff0c;数据安全显得尤为重要。保护网站安全的数字证书应运而生&#xff0c;各大品牌的SSL证书可以实现网站http到https的转变&#xff0c;加密传输过程&#xff0c;提升品牌形象&#xff0c;优化SEO等优点。SSL证书按照验证等级分为DV&#xff0c;OV&…

意大利航天飞行器公司【Sidereus】完成510万欧元融资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;位于意大利萨莱诺的航天飞行器公司Sidereus Space Dynamics今日宣布已完成510万欧元融资。 本轮融资由Primo Space和CDP Venture Capital Sgr领投&#xff0c;通过Italia Venture II - Fondo Impr…

win10 wsl安装步骤

参考&#xff1a; 安装 WSL | Microsoft Learn 一、安装wsl 1.若要查看可通过在线商店下载的可用 Linux 发行版列表&#xff0c;请输入&#xff1a; wsl --list --online 或 wsl -l -o> wsl -l -o 以下是可安装的有效分发的列表。 使用 wsl.exe --install <Distro>…

python结合excel数据轻松实现接口自动化测试

在刚刚进入测试行业的时候&#xff0c;最开始也是做功能测试&#xff0c;我想很多伙伴和我一样&#xff0c;觉得自动化测试都很高端&#xff0c;很神秘。迫不及待的想去学习作自动化测试。 以前比较常用数据库python做自动化&#xff0c;后面发现excel个人觉得更加适合&#x…

Vue开发中Jwt的使用

&#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Vue》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有一定基础的程序员&#xff0c;这个专栏…

vue 页面监听vuex state值的变化

A组件&#xff08;事件操作&#xff09;&#xff1a; methods: {// 收缩菜单menuShrink () {this.iscollapse !this.iscollapse;this.$store.state.iscollapse this.iscollapse;},}B组件&#xff08;监听state某值的变化做一些逻辑代码&#xff09; 先用computed&#xff08…

LeetCode 88 合并两个有序数组

该题注意点有&#xff1a; 1、确定是否需要break以及何时break&#xff1b; break和break one还有return的区别可以参考这篇 break和return-CSDN博客 2、对于m0的特殊情况需要特殊处理 3、这道题其实是插入排序的方法&#xff0c;当插入中间和尾部其实是不一样的处理&…

缓存的力量:提升API性能和可扩展性

缓存是将频繁访问的数据或资源存储在临时存储位置(例如内存或磁盘)的过程&#xff0c;以提高检索速度并减少重复处理的需要。 缓存的好处 提高性能&#xff1a;缓存消除了每次从原始源检索数据的需要&#xff0c;从而提高了响应时间并减少了延迟。减少服务器负载&#xff1a;通…