P4003 [清华集训 2017] 无限之环 解题报告

oj:https://gxyzoj.com/d/gxyznoi/p/P93

它要判断什么时候不漏水,就是需要建一种图,使得原图的最大流是答案

因为是网格图,考虑黑白染色,可以将\((i+j)\)对2取模的结果作为颜色,将所有颜色为1的点向源点连边,颜色为0的点向汇点连边

接下来考虑如何判断是否漏水,因为有四个方向,考虑拆点

将每个点拆为上下左右四个周围点和一个中间点,然后此时就可以将能流到的方向与其对应的点相连

接下来考虑旋转,虽然原图共有15种情况,实则可以分成5大类

  1. 只有一条出边

上图中的边朝上,所以向右或向左均需转一次,而向下需转两次,所以可以从上向左和有分别连一条边权为1的边,向下连一条边权为2的边

  1. 直线型

因为无法旋转,直接连边即可

  1. L型

显然,转一次可以使朝上的边向下或使朝右的边向左,所以可以从上向下,从右向左分别连一条边权为1的边

接着考虑旋转2次的情况,其实就是将两条边跑满,所以不用另外建边

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

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

相关文章

一文搞懂5种内存溢出案例,内含完整源码

在开发中需要尽量避免出现内存溢出,导致程序出现异常。本文分享自华为云社区《10分钟搞懂各种内存溢出案例!!(含完整源码,建议收藏)》,作者:冰 河。 作为程序员,多多少少都会遇到一些内存溢出的场景,如果你还没遇到,说明你工作的年限可能比较短,或者你根本就是个假…

SARscape5.7中DS-InSAR:E-PS操作说明

PS-InSAR方法测量PS点的形变,SBAS-InSAR方法测量分布式散射体DS(Distributed Scatters)的形变。随着技术的发展,在这一领域取得了许多研究进展,SARscape5.7版本开始,提供了能够同时提取PS和DS测量值的新方法,即增强型永久散射体(E-PS)和增强型短基线(E-SBAS)。 E-PS…

揭秘PW1558A:集成电源管理的6A双向限流过压保护IC

描述PW1558A 是一款先进的 28V 6A 额定双向负载开关, 提供过载、 短路、 输入电压浪涌、 过大冲击电流和过热保护, 为系统供电。 内置的 24mΩ超低 RDS(ON)电源开关有助于减少正常操作期间的功率损耗。 该设备具有两个输入/输出端口 VBUS1 和 VBUS2, 其绝对 MAX 大额定值为 …

物理隔离条件下文件交换的防泄密U盘,企业该如何选择?

对于网络安全要求高的企业和单位,往往采用物理隔离的方式进行网络建设,如政府单位、军工、科研所、航空航天企业、以及部分金融机构、医疗单位、电力企业、生物制药实验室等。但物理隔离后,仍然存在着隔离网间的数据交换需求,此时,仅能借助物理工具的方式进行文件交换,而…

第三届机器人、人工智能与信息工程国际学术会议(RAIIE 2024)

2024年第二届机器人、人工智能与信息工程国际学术会议(RAIIE 2024)将于2024年7月5-7日在新加坡举行。【ACM独立出版/Fellow大咖云集】2024年第二届机器人、人工智能与信息工程国际学术会议(RAIIE 2024) 2024 3rd International Symposium on Robotics, Artificial Intellig…

PyQT5之QRadioButton

import os.pathfrom PyQt5 import QtWidgets from PyQt5 import QtCore, QtGui import sys import cv2class ButtonPanel(QtWidgets.QWidget):def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)select_btn = QtWidgets.QPushButton("图像选择"…

TransGNN论文阅读笔记

TransGNN: Harnessing the Collaborative Power of Transformers and Graph Neural Networks for Recommender Systems论文阅读笔记 Abstract 存在的问题: ​ 目前基于 GNN 的方法仍面临着感受野有限和存在 "兴趣无关 "连接噪声的挑战。相比之下,基于Transformer的…

大型零售企业总部到分公司数据发放,有没有更优化的方案?

大型零售企业在市场经济中扮演重要角色,是保证基础商品生产、流通和供给的重要一环。随着企业发展,很多大型零售企业都会在全国、乃至全球各地开设分公司,用以降低生产和运营成本,更好地提供本地化服务。为了保证总部与分公司间信息通畅,同时,总部和分公司间的业务数据、…

UDP内网穿透和打洞原理的C语言代码实现

在典型的NAT穿透场景中,知道服务器端的公网IP和端口,但不知道客户端的公网IP,可以通过一些技巧来实现UDP打洞。可实现内网客户端与服务器相互UDP通信。v1.0 2024年6月5日 发布于博客园目录序言UDP打洞的原理应用场景基本理论代码实现udp_client_NAT.cudp_server_NAT.c结果参…

低代码智能通信:腾讯云短信助力,快速构建高效消息应用

前言 ​ 随着信息技术的飞速发展,现代社会对信息传达的及时性、准确性与便捷性要求越来越高。尤其在移动互联网时代,用户对于服务的体验要求不断提升,这促使各类网站、APP、小程序等服务平台必须持续优化其交互方式,以满足用户日益增长的需求。 ​ 在此背景下,短信作为一种…

.NET C# 程序自动更新组件

实现一个轻量级独立自动更新组件,可稍作修改集成到大家自己项目中,比如:WPF/Winform/Windows服务引言 本来博主想偷懒使用AutoUpdater.NET组件,但由于博主项目有些特殊性和它的功能过于多,于是博主自己实现一个轻量级独立自动更新组件,可稍作修改集成到大家自己项目中,比…