P1073-最优贸易

2023-11-20

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define _for(i,a,b) for(int i = (a);i < b;i ++)
 4 #define _rep(i,a,b) for(int i = (a);i > b;i --)
 5 #define INF 0x3f3f3f3f
 6 #define pb push_back
 7 #define maxn 5053900
 8 typedef long long ll;
 9 
10 inline ll read()
11 {
12     ll ans = 0;
13     char ch = getchar(), last = ' ';
14     while(!isdigit(ch)) last = ch, ch = getchar();
15     while(isdigit(ch)) ans = (ans << 1) + (ans << 3) + ch - '0', ch = getchar();
16     if(last == '-') ans = -ans;
17     return ans;
18 }
19 inline void write(ll x)
20 {
21     if(x < 0) x = -x, putchar('-');
22     if(x >= 10) write(x / 10);
23     putchar(x % 10 + '0');
24 }
25 int tot,ver[maxn],Next[maxn],head[maxn],val[maxn];
26 void add(int x,int y,int t)
27 {
28     ver[++tot] = y,Next[tot] = head[x],head[x] = tot,val[tot] = t;
29 }
30 int n,m;
31 int v[maxn];
32 typedef pair<int,int> P;
33 int d[maxn];
34 void shortest_path(int s)
35 {
36     priority_queue<P> que;
37     memset(d,-0x3f,sizeof(d));
38     d[s] = 0;
39     que.push(P {0,s});
40 
41     while(!que.empty())
42     {
43         P p = que.top();
44         que.pop();
45         int v = p.second;
46         if(d[v] > p.first) continue;
47         for(int i = head[v]; i; i = Next[i])
48         {
49             int y = ver[i];
50             int w = val[i];
51             if(d[y] < d[v] + w)
52             {
53                 d[y] = d[v] + w;
54                 que.push(P {d[y],y});
55             }
56         }
57     }
58 }
59 int main()
60 {
61      n = read();
62      m = read();
63      _for(i,1,n+1)
64          v[i] = read();
65      _for(i,1,m+1)
66      {
67         int a = read();
68         int b = read();
69         int c = read(); 
70         if(c==1)
71         {
72             add(a,b,0);
73             add(n+a,n+b,0);
74             add(2*n+a,2*n+b,0);
75         }
76         else
77         {
78             add(a,b,0);
79             add(b,a,0);
80             add(n+a,n+b,0);
81             add(n+b,n+a,0);
82             add(2*n+b,2*n+a,0);
83             add(2*n+a,2*n+b,0);
84         }    
85     }
86     _for(i,1,n+1)
87      {
88          add(i,i+n,-v[i]);
89          add(i+n,i+n*2,v[i]);
90     }
91     shortest_path(1);
92     printf("%d\n",max(0,d[3*n]));
93     return 0;
94 }

 

转载于:https://www.cnblogs.com/Asurudo/p/11615187.html

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

P1073-最优贸易 的相关文章

  • Spring Boot(十):Druid的监控统计和多数据源配置

    Druid的监控统计 Druid内置提供一个StatFilter 用于统计监控信息 下面我们就来做一些配置 启动Druid的监控 1 配置pom xml
  • JS阻止事件冒泡的几种方式

    JS阻止事件冒泡的几种方式 事件委托 将元素的绑定事件写起其父元素上 防止事件冒泡 example div div div div 将事件绑定在父元素上 不管子元素是不是动态生成的 将第一种绑定事件写成第二种方式 son click fun
  • Tomcat启动乱码

    修改tomcat的conf下的logging properties中的参数 java util logging ConsoleHandler encoding GBK 将UTF 8改到GBK就行了保存后重启tomcat就正常了
  • 如何调整oracle参数,使它支持更多的用户连接

    在参数文件中有三个参数 processes license max sessions license max users 这三个参数相互作用影响着用户连接数 license max sessions 同时连接数据库的会话数 license
  • 手把手教你通过端口映射,轻松搭建Windows远程桌面

    市面上有很多的远程桌面软件 如TeamViewer 向日葵等 但无一例外 它们提供的免费服务连接质量普遍不高 而付费服务价格又偏高 并不能使人满意 但众所周知 微软自带的Windows远程桌面其实在连接质量和稳定性方面一点都不输给第三方软件
  • jquery中$()的使用

    在jquery中最常使用的就是 这个符号了 在我没有系统的学习jquery之前 我用到的 都是用于对元素的选择 而这只是 的很简单的用法 在jquery 函数一共有三种用法 selector context 在这个方法中selector是选
  • error: GLES2/gl2.h: No such file or directory

    最近一个朋友让帮忙编译android程序 中间遇到了很多问题 大概都解决了 最后又遇到了一个问题 GLES2 gl2 h No such file or directory 这个问题 我大概知道是怎么回事 关键是没有指定ndk的编译版本号
  • 公司刚上市就来了个从字节拿28K的人,让我见识到了什么才是测试天花板···

    5年测试 应该是能达到资深测试的水准 即不仅能熟练地开发业务 而且还能熟悉项目开发 测试 调试和发布的流程 而且还应该能全面掌握数据库等方面的技能 如果技能再高些的话 甚至熟悉分布式组件等高级技能 或者说 做个项目小组长 管个3 4号人 应
  • router-link 和 router-view 的 关系

  • vue整合ueditor

    一 前端代码 Ueditor官网地址为 http ueditor baidu com website download html ueditor 下载好之后 将Jsp版本解压 解压后文件夹改名为ueditor 将文件夹中的jsp目录删掉 之
  • Elasticsearch7 清空指定Index 相关数据

    注意 Elasticsearch7 起 Index索引已经不支持创建指定Type 类型 默认取值为 doc Elasticsearch7 清空指定Index 语法 POST 请求 http es 服务器地址 索引名称 delete by q
  • go 进阶 gin实战相关: 五. gin_scaffold 企业脚手架

    目录 一 gin scaffold 企业级脚手架 二 gin scaffold 脚手架安装及使用演示 文件分层解释 开始使用 1 配置开启go mod 功能 2 下载 安装 gin scaffold 3 整合 golang common 4
  • 原生js php ajax,原生Ajax怎么写

    写原生Ajax的方法 首先创建XMLHttpRequest对象 然后编写回调函数onreadystatechange 接着配置请求信息 最后发送请求即可 Ajax Asynchronous JavaScript and XML的缩写 是一种
  • C#使用NuGet包播放视频之二————读取RTSP流

    RTSP流的读取 上篇文章做到读取本地摄像头 基本事都做完了 这篇文章将RTSP流加进去 双击窗体中ToolStrip的RTSP 为之添加事件 事件中编写代码如下
  • Yii2框架(一)安装及目录结构

    如题 对 你要相信自己的眼睛 你没看错确实是Yii2框架 现在都2020年了 刚刚开始折腾Yii2框架难免有些过时 但是没办法 公司目前的项目是基于Yii2开发的 嘿 你说怎么这么巧 我还没用过Yii2框架 没办法 看手册呗 这玩意 万变不
  • Vue2运行报错SyntaxError: Cannot use import statement outside a module

    问题描述 像配置vue3那样配置vue config js的路径代理 代替src后 报错 语法错误 不能在模块外部使用导入语句 原因 模块语法一个是CommonJS module 一个是 ES6 module vue config js里的
  • Google Voice账号的具体保号教程

    Google Voice 官方号码回收规则 https www google com intl zh CN googlevoice program policies html 在9个月内你的Google Voice没拔打电话或接收短信 你的
  • Hbase使用shell命令报错大集锦:

    一 Hbase使用shell命令出现报错 PleaseHoldException Master is initializing 解决办法 0 保证hbase运行着的 1 删除HDFS里hbase文件夹 hdfs dfs rm r hbase
  • 蓝牙BLE连接设备报错onClientConnectionState() - status=133解决方法

    S905平台 Android 5 1 1 WIFI 蓝牙芯片AP6255 客户某蓝牙设备使用他们专用的APK连接不上 查logcat信息如下 D BluetoothAdapter 5097 stopLeScan D BluetoothAda
  • Arduino智能小车随笔(一)

    Arduino智能小车随笔 一 看到小孩的各种STEM课程很火 收费又老贵 就想着不如自己和小孩一起学着做个arduino智能小车 即能让女儿学点编程 又能省了智商税 一举两得 然而到了后面女儿基本上只帮我接线 arduBlock实在无法支

随机推荐

  • ZooKeeper踩坑

    一 下载安装包时要下载文件名中带有bin的安装包 否则会报错 找不到或无法加载主类 org apache zookeeper server quorum QuorumPeerMain Error contacting service 这是由
  • Alluxio集群环境搭建,救救孩子!

    写在前面 最近的一段时间内我会做HDFS Alluxio HBase相关的开发工作 我会继续学习并分享不限于这些组件的知识 正常来说 搭建个集群环境根本不需要专门写个文章 但是这次我必须写 顺带必须小吐槽一下 Alluxio官方文档搭建集群
  • python程序填空题 快乐的数字_Python习题之快乐的数字

    快乐的数字 描述 编写一个算法来确定一个数字是否 快乐 快乐的数字按照如下方式确定 从一个正整数开始 用其每位数的平方之和取代该数 并重复这个过程 直到最后数字要么收敛等于1且一直等于1 要么将无休止地循环下去且最终不会收敛等于1 能够最终
  • Spring Boot整合ElasticSearch

    一 ES客户端 ES提供多种不同的客户端 1 TransportClient ES提供的传统客户端 官方计划8 0版本删除此客户端 2 RestClient RestClient是官方推荐使用的 它包括两种 REST Low Level C
  • vs+qt新建ui项目

    新建项目入门参考教程 新建项目入门参考教程 手动调整UI及程序编写 手动调整UI及程序编写 Qss基础 Qt part 6 QSS Qt样式表 界面美化1 Qt part 7 QSS参考样式表 界面美化2 Qt part 8 QSS 按键菜
  • ArcGIS中KML/KMZ转为.shp文件

    kml kmz到 gt layer到 gt shp 1 打开ArcMap gt ArcToolbox 2 在ArcToolbox中选择 转换工具 gt 由KML转出 gt KML转图层 3 在 KML转图层 的弹出框中 选择并导入KML文件
  • numpy基本矩阵操作

    矩阵乘法 numpy当中常用的矩阵乘法有两种 numpy dot和numpy matmul 当对象是2D矩阵的时候 这两个函数都是进行最正常的矩阵乘法 import numpy as np a np array 1 2 3 4 b np a
  • java-ipfs-api.jar的食用方法

    引入java ipfs api jar 从仓库引入 在pom xml中添加仓库
  • 微信小程序实现车牌号键盘

  • Adobe软件还行吗?

    前段时间 美国政府 准备通过诉讼阻止Adobe去年公布的 以200亿美元收购Figma的交易 理由是此举属于反竞争行为 新闻一出 Adobe股价旋即下跌 但跌幅并不像2022年刚公布这笔交易时那么迅猛 看起来 相较于收购成功 投资者们反而希
  • gzip模块配置指令

    1 gzip指令 该指令用于开启或者关闭gzip功能 语法 gzip on off 默认值 gzip off 位置 http server location 注意只有该指令为打开状态 下面的指令才有效果 http gzip on 2 gzi
  • Python学习:random模块下的choices()函数详解

    1 random choice seq 函数 从非空序列中随机选取一个数据并返回 该序列可以是list tuple str set 举例 import random print random choice choice 结果 choice其
  • IP包头&ARP协议笔记

    一 IP包头分析 1 帧中的IP包头 从版本到可选项 其中2为帧头 注 1 IP包头最小长度 20字节 即可选项以前部分 IP包头长度是可变的 2 可选项最长可以是40个字节 故IP包头最长可以是60个字节 1 版本 4 说明是IPv4 2
  • iOS线程初探(四) GCD 和 NSOperation 小结

    参考资料 关于iOS多线程 看我就够了 GCD 在GCD中 有两个概念很重要 那就是任务和队列 任务 其实就是你需要做的事情 一个Block而已 任务有两种执行方式 同步执行和异步执行 同步执行 会阻塞当前线程 直至该任务执行完成后当前线程
  • 从零开始学Python(四)推导式、多参数解析、装饰器

    Welcome Huihui s Code World 接下来看看由辉辉所写的关于Python的相关操作吧 目录 Welcome Huihui s Code World 一 推导式 1 列表推导式 2 集合推导式 3 字典推导式 二 多参数
  • Python的高级特征你知多少?来对比看看

    https www toutiao com a6682591624012235272 2019 04 22 13 48 29 Python 多好用不用多说 大家看看自己用的语言就知道了 但是 Python 隐藏的高级功能你都 get 了吗
  • 解决:Java source1.5不支持diamond运算符,请使用source 7或更高版本以启用diamond运算符

    Maven默认用的是JDK1 5去编译 diamond运算符 指的是JDK1 7的一个新特性 List
  • python量化 双均线策略(金叉死叉)

    小策略 策略逻辑是在金叉时候买进 死叉时候卖出 所谓金叉死叉是两条均线的交叉 当短期均线上穿长期均线为金叉 反之为死叉 1 jqdata 网页端执行 下面是策略代码及结构 导入函数库 from jqdata import 初始化函数 def
  • Linux 系统实现 SSH 连接的 3 种 方式

    Linux 系统实现 SSH 连接的 3 种 方式 密码登入 公钥登入 私钥登入 登入前提 服务端安装好 ssh 服务 openssh server 客户端与服务器端均要拥有 ssh key 可以使用命令 ls ssh 来查看是否拥有 id
  • P1073-最优贸易

    1 include