首页 > 其他分享 >Contest5401 - 网络流-2

Contest5401 - 网络流-2

时间:2024-08-12 21:37:50浏览次数:15  
标签:二分 最大 Contest5401 网络 NPC 最小 xrightarrow 中转站

Contest

笔记

非常好文章:二分图与网络流 学习笔记

一些定义

  • 匹配:没有公共点的边集
  • 边覆盖:满足任意顶点都至少是一条边的端点的边集
  • 点覆盖:满足任意边都至少有一个端点在集合内的点集
  • 独立集:任意两点互不相连的点集
  • 团:完全子
  • 图 \(G = (V,E)\) 的补图:建出 \(K_{|V|}\) 后删掉所有 \(E\) 中的边后的

一些 NPC

一些结论

  • 最大团 = 补图最大独立集
  • 最大流 = 最小割
  • 平面图最大流 = 平面图最小割 = 对偶图最短路
  • 最大独立集 + 最小点覆盖 = 总点数
  • 二分图最小点覆盖 = 二分图最大匹配 = 总点数 - 二分图最大独立集
    • 二分图最小带权点覆盖 + 二分图最大带权独立集 = 所有点权之和

A 吃饭

P2891 [USACO07OPEN] Dining G

令食物点为 \(P\),饮料点为 \(Q\),牛点为 \(C\)。

  • 把每个牛点 \(C_i\) 拆成两个点 \(C_{i,1}, C_{i,2}\),连边 \(C_{i,1} \xrightarrow{1} C_{i,2}\)。
  • 对每个食物点 \(P_i\) 连边 \(s \xrightarrow{1} P_i\) 和 \(P_i \xrightarrow{1} C_{j,1}\)。\(C_j\) 为喜欢 \(P_i\) 的点。
  • 对每个饮料点 \(Q_i\) 连边 \(C_{j,2} \xrightarrow{1} Q_i\) 和 \(Q_i \xrightarrow{1} t\)。\(C_j\) 为喜欢 \(Q_i\) 的点。

跑最大流即可。

B 打扫卫生

建二分图,左部点是行,右部点是列。对于每个垃圾 \((x,y)\),连 \(x \rightarrow y\)。

跑二分图最小点覆盖即可。

C

P3355 骑士共存问题

棋盘黑白染色,白格能攻击到的位置必然是黑格。

跑二分图最大独立集即可。

D 最大获利

P4174 [NOI2006] 最大获利

一篇不错的题解:题解:P4174 [NOI2006] 最大获利

令中转站点为 \(P\),用户点为 \(Q\)。

  • 对每个 \(P_i\) 连边 \(s \xrightarrow{cost} P_i\),其中 \(cost\) 为建这个中转站的代价。
  • 对每个 \(Q_i\) 连边 \(A_i \xrightarrow{\infty} Q_i\),\(B_i \xrightarrow{\infty} Q_i\),\(Q_i \xrightarrow{income} t\),其中 \(income\) 为收益。

跑最小割即可。

答案为 \((\sum income) - dinic()\)。其中 \(dinic()\) 为最小割。

为什么是对的

  • 割掉中转站的边,意味着使用这个中转站。
  • 割掉用户的边,意味着舍弃这个用户。
  • 未被舍弃的用户必须连着被割掉的中转站,从而导致图不连通。所以是求图的割。
  • 所有用户的收益 - (被舍弃的用户 + 使用的中转站) = 利润。
  • (被舍弃的用户 + 使用的中转站) 最小,利润最大。

E 卖猪

F L型图形

标签:二分,最大,Contest5401,网络,NPC,最小,xrightarrow,中转站
From: https://www.cnblogs.com/AugustLight/p/18355800

相关文章

  • 了解LSTM网络(英文博客汉化)
    UnderstandingLSTMNetworks-了解LSTM网络原文来自于大神CristopherColah于2015年在Github上发布的一篇博客,窃以为此文不失为一篇入门神经网络的经典文章,遂产生了汉化的想法,附原文链接UnderstandingLSTMNetworks什么是RNN人类不会时时刻刻都从头开始思考。譬如当你......
  • PyTorch:从零实现一个双向循环神经网络
    从零实现一个双向循环神经网络(Bi-directionalRecurrentNeuralNetwork,Bi-RNN)从零开始,可以帮助我们深入理解RNN的机制。以下是实现步骤:定义RNN单元:实现一个简单的RNN单元,能够处理单个时间步长的数据。定义双向RNN:实现前向和后向的RNN,组合它们的输出。定义损失函......
  • 网络编程
    网络编程1.计算机网络1.1.什么是计算机网络计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统。1.2.什么是网络编程网络编程就是编写程序使联网的两个(或多个)设备(例如计算机)之间进行数据传输。Java语......
  • 网络编程学习总结
    Java网络编程学习总结本章目标了解计算机网络基础知识了解OSI七层参考模型熟悉TCP/IP协议熟悉常见网络协议掌握socket套接字编程计算机网络什么是计算机网络计算机网络是通过传输介质、通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共......
  • 【网络】从零认识IPv4
    目录IP地址定义网络标识和主机标识子网掩码IPv4地址的分类全局地址和私有地址个人主页:东洛的克莱斯韦克-CSDN博客IP地址定义IP是网络中每台设备的唯一标识符,用于识别和定位计算机、服务器、路由器等设备,以便它们能够在网络上进行通信。IPv4是由32位比特位构成,计算......
  • 网络划分
    视频子网划分用子网掩码子网掩码=网络位+主机位ip地址自然分类127.0.0.1理解为什么进行子网划分掌握怎么进行子网划分......
  • yum网络源的配置
    yum的原理yum的全称是YellowdogUpdater,Modified,yum是CentOS或者是RedHat中最常见的包管理器。早期的Linux发行版安装软件包要解决软件包的依赖问题,这些依赖的问题需要人工手动解决,通常是需要安装的软件有多个依赖,依赖又有其他的依赖所以自行手动安装很麻烦。yum......
  • 虚拟机网络设置 与dhcp 获取ip
     在宿主机(例如Linux服务器)中运行虚拟机时,虚拟机通常通过DHCP服务器获取IP地址。以下是如何配置和排查虚拟机DHCP获取IP的过程:1.检查虚拟机的网络配置虚拟机的网络配置类型通常有以下几种:NAT(NetworkAddressTranslation):虚拟机通过宿主机的IP地址访问外部......
  • 07.网络管理课后习题
    07.网络管理课后习题1.如何查看系统中每个ip的连接数2.请列出下列服务使用的端口,http,ftp,ssh,telnet,mysql,dnsHTTP:默认端口80FTP:默认端口21(控制连接),20(数据连接)SSH:默认端口22Telnet:默认端口23MySQL:默认端口3306http 80/tcphttps 443/tcpssh ......
  • linux反向代理原理:帮助用户更好地优化网络架构
    Linux反向代理原理详解反向代理是一种在网络架构中常用的技术,尤其在Linux环境下被广泛应用。它可以帮助实现负载均衡、安全防护和请求缓存等功能。本文将深入探讨Linux反向代理的原理、工作机制以及其应用场景。1.什么是反向代理反向代理是指代理服务器接收客户端的请求,......