定根最小树形图 朱刘算法 luogu P4716

2023-11-11

https://www.luogu.org/problem/P4716

#include<bits/stdc++.h>
#define ll long long
#define rep(ii,a,b) for(int ii=a;ii<=b;++ii)
#define per(ii,a,b) for(int ii=b;ii>=a;--ii)
#define forn(i,x,g,e) for(int i=g[x];i;i=e[i].next)
#define IO ios::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define ull unsigned long long
#define fi first
#define se second
#define mp make_pair
#define pii pair<ll,ll>
#define all(x) x.begin(),x.end()
#define show(x) cout<<#x<<"="<<x<<endl
#define showa(a,b) cout<<#a<<'['<<b<<"]="<<a[b]<<endl
#define show2(x,y) cout<<#x<<"="<<x<<" "<<#y<<"="<<y<<endl
#define show3(x,y,z) cout<<#x<<"="<<x<<" "<<#y<<"="<<y<<" "<<#z<<"="<<z<<endl
#define show4(w,x,y,z) cout<<#w<<"="<<w<<" "<<#x<<"="<<x<<" "<<#y<<"="<<y<<" "<<#z<<"="<<z<<endl
#define show5(v,w,x,y,z) cout<<#v<<"="<<v<<" "<<#w<<"="<<w<<" "<<#x<<"="<<x<<" "<<#y<<"="<<y<<" "<<#z<<"="<<z<<endl
#define showa2(x,a,b) cout<<#x<<": ";rep(i,a,b) cout<<x[i]<<' ';cout<<endl
using namespace std;//head
const int maxn=1e3+10,maxm=1e4+10;
const ll INF=0x3f3f3f3f,mod=1e9+7;
int casn,n,m,k;
struct node{int a,b,c;}e[maxm];
int in[maxn],pre[maxn],vis[maxn],id[maxn];
ll mag(){
  ll ans=0;int cnt=0,a,b,laz;
  while(1){
    rep(i,1,n) in[i]=INF,id[i]=vis[i]=0;
    rep(i,1,m) if(e[i].a^e[i].b&&e[i].c<in[e[i].b])
      pre[e[i].b]=e[i].a,in[e[i].b]=e[i].c;
    in[k]=0;
    rep(i,1,n){
      if(in[i]==INF) return -1;
      ans+=in[i];
      for(a=i;a^k&&vis[a]^i&&!id[a];a=pre[a])vis[a]=i;
      if(a^k&&!id[a]){
        id[a]=++cnt;
        for(b=pre[a];a^b;b=pre[b])id[b]=cnt;
      }
    }
    if(!cnt) return ans;
    rep(i,1,n) if(!id[i]) id[i]=++cnt;
    rep(i,1,m) {
      laz=in[e[i].b];
      if((e[i].a=id[e[i].a])^(e[i].b=id[e[i].b]))
        e[i].c-=laz;
    }
    n=cnt;k=id[k],cnt=0;
  }
}
int main() {IO;
  cin>>n>>m>>k;
  rep(i,1,m)cin>>e[i].a>>e[i].b>>e[i].c;
  cout<<mag()<<endl;
}

 

转载于:https://www.cnblogs.com/nervendnig/p/11625479.html

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

定根最小树形图 朱刘算法 luogu P4716 的相关文章

  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • <van-empty description=““ /> 滚动条bug

    使用
  • 用 echarts画图时tooltip.formatter参数params不会更新

    使用echarts画地图时 遇到一个很奇怪的问题 首先说明我的目的 为了让地图漂亮些 不同的地图区域显示不同的颜色 由于待绘制的地图二级地市数量不确定 需要通过解析获取到的数据来确定 因此我在 series的itemStyle中采用了函数来
  • mysql 查询两个时间段是否有交集的情况

    只要查询自己选择的时间段 和 数据库里面的时间段 是否有交集 就可以了 数据库的字段 start time end time 输入的字段 a b 第一种 SELECT FROM test table WHERE start time gt
  • FPGA学习日记(二)使用quartusII创建ip核

    使用quartusII创建各类ip核 操作大体上都相似 区别在于根据实际需求对ip核进行设置 下面以pll的ip核创建为例 讲述ip核的一般创建过程 step1 找到tools下的魔棒选项 step2 选择创建一个新的ip核还是导入已有的i
  • 华为OD岗位机试指南

    首先 自己要去熟悉编程语言的方法 找一些题目来做 比如力扣的中等题目 过往的OD机试题目 主要学习解题思想 看代码里高级写法 而不是仅仅收藏 照抄 同时一定要优先熟悉牛客网的编程环境 尽量在网页编辑 本地编译会导致粘贴时错行 会很坑的 其次
  • 图像分类:搭建AlexNet并定义加载训练特定数据集

    目录 前言 AlexNet搭建 模型架构 卷积神经网络输出 层设置 模型代码 数据集定义加载 自定义数据集 数据集定义代码 读取txt文件 处理加载数据集 数据集加载代码 训练测试 训练过程 测试过程 前言 AlexNet模型是2012由A
  • qemu-system-x86_64 命令创建虚拟机,报gtk initialization failed的

    因为是ssh命令行启动 增加 nographic opt debug bin qemu system aarch64 machine virt 6 2 qmp tcp localhost 1238 server nowait nograph
  • npm离线安装全局模块包

    首先下载所需的npm模块包及其所有依赖项 使用以下命令将模块包及其依赖项下载到一个目录中 npm pack
  • 显式链接、隐式链接和显式加载、隐式加载以及动态库路径查找

    我们知道库一般有静态库和动态库2种 静态库是编译时就链接到可执行文件中的 动态库是在程序运行时再进行加载的 故本文讨论的链接与加载方式是指对动态库而言的 一 动态库的加载方式 1 隐式加载 就是我们需要准备好 h lib或者 so 对头文件
  • 使用libcurl步骤4之curl_easy_perform

    文章采集自互联网 仅做学习笔记使用 curl easy perform 同步执行文件传输 名称 curl easy perform 执行阻止文件传输 概要 include
  • 如何在vue项目中使用Highmaps(vue+Highmaps)

    如何在vue项目中使用Highmaps 功能需求 思路 分析 实现 第一步 引入 第二步 介绍一下这个world是个啥 第三步 调用 注意点 十分重要 写在最后 功能需求 近日我接到了这么一个需求 原型如下 在系统中需要绘制一个图表 世界地
  • 【9月比赛合集】9场可报名的「创新应用」、「数据分析」和「程序设计」大奖赛,任君挑选!

    CompHub 1 实时聚合多平台的数据类 Kaggle 天池 和OJ类 Leetcode 牛客 比赛 本账号会推送最新的比赛消息 欢迎关注 以下信息仅供参考 以比赛官网为准 目录 创新应用赛 2场比赛 程序设计赛 7场比赛 创新应用赛 2
  • 华为nova7支持升级鸿蒙os的机型,华为全面进入鸿蒙OS时代,这些机型包括荣耀或将都可升级...

    原标题 华为全面进入鸿蒙OS时代 这些机型包括荣耀或将都可升级 之前 华为已经爆出将适配EMUI 11 1系统 而这款最新系统的内核将换成鸿蒙OS 这意味着华为开始全面进入鸿蒙OS时代 也就是国产系统时代 而之前消息显示 前期仅有13款机型
  • Android开发和安全系列工具

    原文 http sec redclub com index php archives 439 spm a313e 7916648 0 0 lvpNiu 取证工具 bandicoot https github com yvesalexandr
  • Modbus网关的 四种类型

    概述 Modbus网关是一种能够将Modubs TCP协议转化为Modbus RTU协议的设备 Modbus广泛应用于仪表和传感器领域 可以获得仪表和传感器的数据 但是传统的基于RS485的Modbus RTU 或ASCII 速度和扩展性较
  • DDoS攻击实验笔记

    DoS DDoS简介 DoS Denial of Service 拒绝服务攻击是通过一些方法影响服务的可用性 比如早期主要基于系统和应用程序的漏洞 只需要几个请求或数据包就能导致长时间的服务不可用 但易被入侵检测系统发现 DDoS Dist
  • 试题管理系统[详细步骤&内含源码]

    试题管理系统 需求 1 数据库中试题信息的动态展示功能 2 增加试题 3 删除单个试题功能 删除多个试题功能 4 分页查询并展示功能 所用技术 MyBatis SpringMVC idea Maven 数据库 Jsp 步骤 建表 建立表格
  • 对比学习做了什么?

    什么是对比学习 对比学习貌似处于 无明确定义 有指导原则 的状态 什么是对比学习呢 这个是微信链接 全文比较长 但是逻辑框架还是不错的 如果想要更快速的了解什么是对比学习或者说对比学习是怎么做的 可以看SimCLR这个模型文章 该文章可以说
  • python小游戏 滑雪小游戏设计与实现 (源码)

    文章目录 0 项目简介 1 游戏介绍 2 实现效果 3 开发工具 3 1 环境配置 3 2 Pygame介绍 4 具体实现 5 最后 0 项目简介 Hi 各位同学好呀 这里是L学长 今天向大家分享一个今年 2022 最新完成的毕业设计项目作

随机推荐

  • 公众号内容拓展学习笔记(2021.10.1)

    公众号内容拓展学习笔记 2021 10 1 今日要点 ICCV 2021 英伟达新研究 直接通过视频就能捕获3D人体动作 Abstract 英伟达新研究直接通过视频就能捕获3D人体动作 Paper Physics based Human M
  • 【java进阶08:异常】finally关键字、自定义异常类、用户业务作业、军队武器作业

    java中的异常处理机制 异常在java中以类和对象的形式存在 那么异常的继承结构是怎样的 我们可以使用UML图来描述以下继承结构 画UML图的工具 Rational Rose starUML等 Object下有Throwable 可抛出的
  • 计算机硬件基础-----写在最后

    今天2021 5 15 天气阴有雨 今天宜 睡觉 忌 上自习 天气预报报着今天有雨 还真就下了一天的雨到现在还没有停 上午在实验室又坐了一上午 虽然下周硬件和数据库就要考试了 因为小程序比赛最近一直也没有时间来应对考试 但下午还是选择和同学
  • 对大学生活的几点建议

    List item 在大学不要对人随意的掏心掏肺 因为你的痛苦只有你自己知道 其他人没有经历过 不会懂 也许你掏心掏肺的说一大通 在他人眼中就是幼稚 就是不成熟 我还记得自己刚上大学 因为自卑 几乎没和其他人有来往 现在虽比起以前强了 但是
  • 动态类型语言和静态类型语言

    本文内容 动态类型语言 Dynamically Typed Language 静态类型语言 Statically Typed Language 比较 参考资料 历史版本 记得我刚毕业时在第一家公司 离职那天领导找我谈话 让我暂时别走 看 B
  • 普通用户没有管理员权限但是可以安装软件或者打开Admin权限的CMD

    案例分析 除了IT肯定还有行政的吗 那IT肯定跟行政玩的好打好关系才可以顺风顺水啊 那行政肯定有些东西打开需要权限的啊 例如IT 帮别人解锁账号的工具 自己忙嘛 小事情肯定你懂的哈哈哈 偷个懒 不废话 上代码 顺便代码解析 其实就是通过se
  • 性能测试系列(二)

    性能测试之性能分析命令 1 CPU分析 a cpu基本信息 命令 lscpu Cpu架构 64 位 Cpu 核心数 6 NUMA UMA节点数为 2个 显示值加 1 Cpu的核心频率 说明此服务器为虚拟机 此服务器的 cpu使用的是 使用的
  • 如何使用python实现自动化办公?全网最全干货来了!

    大家好 接下来我们来学习如何使用python 实现自动化办公 而不需要我们人工 或者说尽量减少我们人工的参与 文末领读者福利 自动化办公在我们的生活中非常的常见 让我们看看通过本博客你可以学习到python哪些自动化操作 看完这幅图 大家就
  • Python Web开发的完整指南

    博客 https somenzz cn 电脑阅读更方便 阅读原文可访问文中的链接 学了 Python 这么长时间了 终究觉得编程语言仅仅是个工具 要想通过技术实现自己的价值 终究离不开具体的应用场景 而应用场景繁多 我们的时间和精力都是有限
  • 前端(技巧+踩坑记录)

    1 计算属性用法 2 map返回数据 3 过渡效果 移动端过渡 效果图 更多过渡效果 进入 离开 列表过渡 Vue js pc端过渡动画 直接用el组件 自带过渡 4 el分页组件 5 svelte js vite使用sass 5 1 下载
  • TOP100案例分享 “预测性维护”

    科技领域每年有哪些技术和产品正在成为不可磨灭的 标记 和 符号 国内外科技圈又有哪些人和组织最值得点赞 哪些创新案例最值得借鉴和复盘 由麦思博 msup 有限公司主办的 以 人工智能时代的研发战略演进 为主方向的第六届全球软件案例研究峰会
  • 求两个数的 最大公约数 和最小公倍数

    最大公约数 思路 假设有两个数a b 求a b的最大公约数 令a b 得到的结果用tmp记录 再将b的值给a tmp的值给b 此时a的值变成了b b的值变成了tmp 循环进行a b 直至a b的结果为0时 循环结束 此时b的值即为最小公约数
  • QString 转换为 char */ unsigned char *

    1 QString 转换为 char 将 QString 转 char 需要用到 QByteArray 类 QByteArray 类的说明详见 Qt 帮助文档 因为 char 最后都有一个 0 作为结束符 而采用 QString toLat
  • 数据分析入门-SARIMA模型案例分析(超详细)

    由于代码中注释已经非常的清晰 文章中就不过多叙述了 直接上代码 代码如下 在开始之前先导入所需要的包 import warnings do not disturbe mode warnings filterwarnings ignore i
  • 9.9+9.14字节三轮面试手撕代码记录

    一 根据字符出现的频率重新排列字符串 如 happy gt pphap import java util Scanner import java util Map import java util HashMap import java u
  • 电感升压(boost电路)感性理解

    目录 前言 一 电感升压基本原理 二 工作原理步骤 1 开关闭合 给电感和电容充电 电容获得输入电压 2 开关断开 电感继续给电容充能 电容获得更高电压 总结 前言 以前在消费类小家电方案中 经常用到电感升压的应用 一个很典型的应用是手持小
  • sh脚本报错“eval: line 1: syntax error: unterminated quoted string”

    有个之前一直正常运行的脚本 突然报错了 eval line 1 syntax error unterminated quoted string 提示也比较直接eval使用出的问题 过滤一下脚本内容 果然找到了一个疑似问题代码 eval ec
  • 切割列表[]

    import sys def sliceABC sequence start 0 K len sequence if start gt K print 切割数量超出范围 sys exit return sequence start K se
  • Kaplan-Meier生存曲线绘制

    Kaplan Meier生存曲线绘制 生存分析研究的是某个事件发生之前过去的时间 在临床研究中最常见的应用就是死亡率的估计 预测患者的生存时间 不过生存分析也可以应用于其他领域如机械故障时间等 在R中 survival包中有很多函数可以对生
  • 定根最小树形图 朱刘算法 luogu P4716

    https www luogu org problem P4716 include