地震逃生【最大流模板题】

2023-11-09

题目链接 P1343 地震逃生


  简单的最大流的模板,小心“/0”的RE情况。读题。

  另外,写的是ISAP。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <string>
#include <cstring>
#include <algorithm>
#include <limits>
#include <vector>
#include <stack>
#include <queue>
#include <set>
#include <map>
#include <bitset>
#include <unordered_map>
#include <unordered_set>
#define lowbit(x) ( x&(-x) )
#define pi 3.141592653589793
#define e 2.718281828459045
#define INF 0x3f3f3f3f3f3f3f3f
#define HalF (l + r)>>1
#define lsn rt<<1
#define rsn rt<<1|1
#define Lson lsn, l, mid
#define Rson rsn, mid+1, r
#define QL Lson, ql, qr
#define QR Rson, ql, qr
#define myself rt, l, r
#define MP(a, b) make_pair(a, b)
using namespace std;
typedef unsigned long long ull;
typedef unsigned int uit;
typedef long long ll;
const int maxN = 2e2 + 7, maxM = 2e4 + 7;
int N, M, S, T, head[maxN], cnt, cur[maxN];
struct Eddge
{
    int nex, to; ll flow;
    Eddge(int a=-1, int b=0, ll c=0):nex(a), to(b), flow(c) {}
}edge[maxM];
inline void addEddge(int u, int v, ll w)
{
    edge[cnt] = Eddge(head[u], v, w);
    head[u] = cnt++;
}
inline void _add(int u, int v, ll w) { addEddge(u, v, w); addEddge(v, u, 0); }
struct Max_Flow
{
    int gap[maxN], d[maxN], que[maxN], ql, qr, node;
    inline void init()
    {
        for(int i=0; i<=node + 1; i++)
        {
            gap[i] = d[i] = 0;
            cur[i] = head[i];
        }
        ++gap[d[T] = 1];
        que[ql = qr = 1] = T;
        while(ql <= qr)
        {
            int x = que[ql ++];
            for(int i=head[x], v; ~i; i=edge[i].nex)
            {
                v = edge[i].to;
                if(!d[v]) { ++gap[d[v] = d[x] + 1]; que[++qr] = v; }
            }
        }
    }
    inline ll aug(int x, ll FLOW)
    {
        if(x == T) return FLOW;
        int flow = 0;
        for(int &i=cur[x], v; ~i; i=edge[i].nex)
        {
            v = edge[i].to;
            if(d[x] == d[v] + 1)
            {
                ll tmp = aug(v, min(FLOW, edge[i].flow));
                flow += tmp; FLOW -= tmp; edge[i].flow -= tmp; edge[i ^ 1].flow += tmp;
                if(!FLOW) return flow;
            }
        }
        if(!(--gap[d[x]])) d[S] = node + 1;
        ++gap[++d[x]]; cur[x] = head[x];
        return flow;
    }
    inline ll max_flow()
    {
        init();
        ll ret = aug(S, INF);
        while(d[S] <= node) ret += aug(S, INF);
        return ret;
    }
} mf;
inline void init()
{
    cnt = 0; S = 1; T = N; mf.node = N;
    for(int i=0; i<=N; i++) head[i] = -1;
}
int main()
{
    ll X;
    scanf("%d%d%lld", &N, &M, &X);
    init();
    for(int i=1, u, v, w; i<=M; i++)
    {
        scanf("%d%d%d", &u, &v, &w);
        _add(u, v, w);
    }
    ll Max_Flow = mf.max_flow();
    if(!Max_Flow) printf("Orz Ni Jinan Saint Cow!\n");
    else printf("%lld %lld\n", Max_Flow, (X - 1) / Max_Flow + 1);
    return 0;
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

地震逃生【最大流模板题】 的相关文章

  • AcWing 1055. 股票买卖 II

    输入样例1 6 7 1 5 3 6 4 输出样例1 7 输入样例2 5 1 2 3 4 5 输出样例2 4 输入样例3 5 7 6 4 3 1 输出样例3 0 样例解释 样例1 在第 2 天 股票价格 1 的时候买入 在第 3 天 股票价格
  • LeetCode-Python-1584. 连接所有点的最小费用(MST)

    给你一个points 数组 表示 2D 平面上的一些点 其中 points i xi yi 连接点 xi yi 和点 xj yj 的费用为它们之间的 曼哈顿距离 xi xj yi yj 其中 val 表示 val 的绝对值 请你返回将所有点
  • True Liars 【POJ - 1417】【种类并查集+0-1背包】

    题目链接 题目想要知道有P个好人 说真话的人 和Q个坏人 说假话的人 并且有N条信息 代表A说B是好人 yes 坏人 no 那么 在保证答案唯一的情况下输出这P个好人 并且最后的时候输出 end 否则 输出 no 坑点 答案唯一指的是最后你
  • LeetCode-剑指 Offer II 114. 外星文字典,BFS 搜索算法及图的表示

    剑指 Offer II 114 外星文字典 现有一种使用英语字母的外星文语言 这门语言的字母顺序与英语顺序不同 给定一个字符串列表 words 作为这门语言的词典 words 中的字符串已经 按这门新语言的字母顺序进行了排序 请你根据该词典
  • 图论:Dijkstra算法——最详细的分析,图文并茂,一次看懂!

    文章目录 1 Dijkstra算法简介 2 算法实现范例 3 邻接矩阵 4 Dijkstra 算法的 C 描述 5 Dijkstra 算法的 Matlab 描述 6 温故知新 1 Dijkstra算法简介 背景 迪杰斯特拉算法 Dijkst
  • 【斯坦福CS224W笔记之二】传统图机器学习的特征工程 — 节点

    Traditional Methods for ML on Graphs 是根据同济子豪兄学长的中文讲解做的笔记哦 感兴趣的话可以直接去b站观看详细视频 传送带 https github com TommyZihao zihao cours
  • 2021级新生个人训练赛第38场

    问题 A chicken 题目描述 小 x 非常喜欢小鸡翅 他得知 NSC 超市为了吸引顾客 举行了如下的活动 一旦有顾客在其他超市找到更便宜的小鸡翅 NSC 超市将免费送给顾客 1000g 小鸡翅 小 x 为了尽可能的省钱 走遍了各大超市
  • PCL点云处理之批量读写点云、随机赋予颜色 并保存

    include
  • 【01规划】POJ 3621 Sightseeing Cows

    POJ 3621 Sightseeing Cows 题意 给定一张 n 个点 m 条边的有向图 每个点都有一个权值 f i 每条边都有一个权值 t i 求图中的一个环 使 环上各点的权值之和 除以 环上各边的权值之和 最大 输出这个最大值
  • 树形dp(例题)

    树的最长路径带权值 树的直径可能时红色的边 从上图可以看出 每次要两个变量存放以u为根 最长路径d1 和次长路径d2 那么整个树的最长路径就有可能是d1 d2 我们每次要返回以u为根的贯穿试的最长路径 给他的父节点判断使用如下图 inclu
  • [UVA1364

    评测地址 网址1 网址2 题目描述 题意 给出n位骑士 然后有m个关系 每个关系以格式 a b a b a b给出 表达骑士 a a
  • [图论]---[网络流]---最大权闭合子图

    最大权闭合子图 闭合图的概念 闭合图建立在有向图之上 对于 G V E 选取一个点的子集 V V 的任意一点的所有能到达的点也在集合 V 内 则称 V 为闭合子图 最大权闭合子图即在G的所有闭合子图中 点权和最大的 最大权闭合子图的求法 构
  • Fix a Tree【Codeforces 699 D】【dfs + 树的性质】

    Codeforces Round 363 Div 2 D 题意 有N个点 每个点i都有一个父节点p i 如果 i p i 则是说明i结点是根结点 现在我们给出这样的1 N的p i 这可能是不合法的 问 我们应该最少改变多少个使它变成一棵合法
  • 数据结构练习题——图(含应用题)

    1 选择题 1 在一个图中 所有顶点的度数之和等于图的边数的 倍 A 1 2 B 1 C 2 D 4 答案 C 2 在一个有向图中 所有顶点的入度之和等于所有顶点的出度之和的 倍 A 1 2 B 1 C 2 D 4 答案 B 解释 有向图所
  • 【算法笔记】Prim算法

    定义 prim算法 图论中的一种算法 可在加权连通图里搜索最小生成树 由此算法搜索到的边子集所构成的树中 不但包括了连通图里的所有顶点 并且其所有边的权值之和最小 算法描述 输入 一个加权连通图 其中顶点集合为V 边集合为E 初始化 Vne
  • Dinic算法学至大佬,学以致用【挂上相应的题目】

    这个巨佬讲的超级厉害 学起来很快 还有优化的说呢 Dinic算法 研究总结 网络流 网络流是信息学竞赛中的常见类型 笔者刚学习了最大流Dinic算法 简单记录一下 网络流基本概念 什么是网络流 在一个有向图上选择一个源点 一个汇点 每一条边
  • The Necklace 【UVA - 10054】【欧拉回路详解】

    题目链接1 题目链接2 题目求的是一串珠子 要让它们首尾相互照应才能串起来 并且 最后要连成一个环 使得最后的珠子的尾与第一个珠子的头相互对应 那么 这道题就是道求欧拉回路的题了 我们要先判断这是不是能够构成欧拉回路 这是个无向图 再对于需
  • BFS遍历树和DFS遍历树

    遍历树 按照遍历的顺序 如不清楚图的遍历 请先阅读图的遍历 绘制成树型结构 DFS遍历树 以下为图到遍历树的转化 如果不清楚图的遍历 请先阅读笔者的另一篇文章 图的遍历 动图 按照DFS遍历的顺序 绘制成一棵树 途中红色的边就是遍历过程中没
  • 第14届蓝桥杯C++B组省赛

    文章目录 A 日期统计 B 01 串的熵 C 冶炼金属 D 飞机降落 E 接龙数列 F 岛屿个数 G 子串简写 H 整数删除 I 景区导游 J 砍树 今年比去年难好多 Update 2023 4 10 反转了 炼金二分没写错 可以AC了 U
  • AtCoder Beginner Contest 332 G. Not Too Many Balls(最大流转最小割 dp)

    题目 n n lt 500 种球 第i种有ai 0 lt ai lt 1e12 个球 m m lt 5e5 个盒子 第j个能放bj 0 lt bj lt 1e12 个球 特别地 第j个盒子最多能放i j个第i种球 求m个盒子能放的最多的球的

随机推荐

  • Socket中出现EOFException错误问题

    java io EOFException at java io ObjectInputStream PeekInputStream readFully ObjectInputStream java 2681 at java io Objec
  • 六、Vite 常用第三方库(axios、mockjs、sass、echars、element-plus、开箱即用)

    文章目录 一 参考 二 vite 创建 Vue 项目工程 2 1 create vite和vite的关系是什么呢 2 2 vue团队希望弱化vite的一个存在感 但是我们去学习的时候不能弱化的 2 3 创建工程 三 第三方库的安装 开箱即用
  • CMake:递归检查并拷贝所有需要的DLL文件

    文章目录 1 目的 2 设计 整体思路 多层依赖的处理 获取 DLL 所在目录 探测剩余的 DLL 文件 3 代码实现 判断 stack 是否为空 判断 stack 是否为空 获取所有 target 检测并拷贝 DLL 4 使用 1 目的
  • 苏州吴江区实现首单跨区域数字人民币试点场景应用

    作为数字人民币试点的首批城市 苏州一直在数字人民币应用场景的落地方面进展迅速 其中 苏州相城区在全市率先开展数字人民币场景建设及试点 截至目前 已开放试点场景7500余个 占全市总数近50 并在全国率先落地交通补贴批量代发 房屋契税缴纳 智
  • python num循环怎么从1开始

    如何实现python for循环从1开始 range 函数的作用和用法 编写一个从数值1开始的循环 执行后得到的结果 其他注意事项
  • 在OTFS学习中的一些总结

    双选特性 多径传播 gt 时延 gt 频率选择性 时延的倒数为相干带宽 在频域内信道相应的幅值大概保持不变的一段频率称为相干带宽 当信号的带宽小于相干带宽 或者说信号的传输时间 周期 大于时延拓展 信号之间没有干扰 我们认为信号是没有失真的
  • Win10下Anaconda使用conda activate激活环境出错

    直接输入conda activate pytorch 报如下错误 解决方法 1 在base路径下先输入activate 提示如下 2 再输入conda activate base 激活base环境 3 在输入conda activate p
  • [python知识] 爬虫知识之BeautifulSoup库安装及简单介绍

    一 前言 在前面的几篇文章中我介绍了如何通过Python分析源代码来爬取博客 维基百科InfoBox和图片 其文章链接如下 python学习 简单爬取维基百科程序语言消息盒 Python学习 简单网络爬虫抓取博客文章及思想介绍 python
  • awk使用shell变量,shell获取awk中的变量值

    awk使用shell变量 shell获取awk中的变量值 2012 04 13 09 36 28 分类 LINUX 字号 订阅 原文 http renyongjie668 blog 163 com blog static 160053120
  • 今天面试招了个18K的人,从腾讯出来的果然都有两把刷子···

    公司前段时间缺人 也面了不少测试 前面一开始瞄准的就是中级的水准 也没指望来大牛 提供的薪资在15 20k 面试的人很多 但平均水平很让人失望 看简历很多都是4年工作经验 但面试中 不提测试工具 仅仅基础的技术很多也知之不详 多数人数年的工
  • Android 系统启动流程简介

    1 Init 进程启动流程 2 Zygote启动流程 3 SystemServer启动流程 1 Init 进程启动流程 Android启动流程 init进程 gt Zygote进程 gt SystemServer进程 gt 各种应用进程 I
  • [源码解析] NVIDIA HugeCTR,GPU 版本参数服务器---(7) ---Distributed Hash之前向传播

    Python微信订餐小程序课程视频 https edu csdn net course detail 36074 Python实战量化交易理财系统 https edu csdn net course detail 35475 源码解析 NV
  • 【Php】PhpSpreadsheet安装的坑怎么这么多!

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 人是代码非 一 PhpSpreadsheet不安装直接用行不行 二 安装的坑 1 缺少fileinfo扩展 2 下载中断 3 proc open函数被禁用 4 co
  • Jmeter 集合点详细讲解

    集合点 让所有请求在不满足条件的时候处于等待状态 如 我集合点设置为50 那么不满足50个请求的时候 这些请求都会集合在一起 处于等待状态 当达到50的时候 就一起执行 从而达到并发的效果 那么Jmeter中可以通过同步定时器Synchro
  • Mybatis

    最近又遇到mybatis的问题了 所以把之前写的和补充的笔记一起放上来 一 动态sql 在编写项目的时候经常需要拼接一些复杂的SQL语句 而拼接过程中很容易导致错误 而Mybatis的动态SQL功能正好能够解决这种问题 可以通过使用 if
  • 【长文预警】美团联合创始人王慧文清华产品课

    前言 一 成功和失败的产品 一般来说在一个领域里一款产品的成功对应着无数产品的失败 根据老王个人的经验 成功和失败的比例大约是1 30 失败的原因多种多样 有些啥都没做对 有些作对了一部分 这里列举的失败案例主要讲做对了一部分的 准确说算是
  • sonar.java.binaries的配置

    从sonarQube 4 12开始 sonar将会进行程序的动态检查 不配置sonar java binaries属性将会出错 From SonarJava version 4 12 binary files are required fo
  • 在 Mac 上使用 VMware 安装 Windows 11

    因为项目原因 需要在 windows 环境下测试一下 electron 的表现 于是就记录一下在 mac 虚拟机上安装 windows 的体验 总体来说难度不大 我电脑的情况 2020 款 macbook pro 16g 512g 前期准备
  • golang版本管理gvm

    今天小土带来一篇关于Go版本管理器gvm的小短文 废话不多说 开始安装 安装 如果你使用的mac mac 需要先安装xcode select 没安装过的同学可以按照如下命令进行执行安装 这里不做太多说明了 xcode select inst
  • 地震逃生【最大流模板题】

    题目链接 P1343 地震逃生 简单的最大流的模板 小心 0 的RE情况 读题 另外 写的是ISAP include