「一本通 3.2 例 3」架设电话线
题目大意
在加权无向图上求出一条从 号结点到 号结点的路径,使路径上第 大的边权尽量小。
思路
由于是一次性的,且这题数据极小,考虑
正常情况下是来更新数组的,不过这次是更新
表示第个节点,(可以等于零)
状态转移方程为:,
题目就结束了
代码
#include<bits/stdc++.h>
#define y second
using namespace std;
const int N=1007;
int head[N],cnt=0;
struct node {int v,w,nxt;
} edge[20*N];
void add(int u,int v,int w) {edge[++cnt].v=v;edge[cnt].w=w;edge[cnt].nxt=head[u];head[u]=cnt;
}
priority_queue<pair<int,int>>q;
int d[N];
bool vis[N];
int n,m,s,u,v,w;
int dp[N][N];
int main() {memset(d,0x3f,sizeof(d));scanf("%d %d %d",&n,&m,&s);for(int i=1; i<=m; i++) {scanf("%d %d %d",&u,&v,&w);add(u,v,w);add(v,u,w);}memset(dp,0x3f,sizeof dp);dp[1][0]=0;for(int i=1; i<=n; i++) {bool flag=1;for(int u=1; u<=n; u++) {for(int i=head[u]; i; i=edge[i].nxt) {v=edge[i].v,w=edge[i].w;if(vis[v])continue;if(dp[v][0]>max(dp[u][0],w))dp[v][0]=max(dp[u][0],w),flag=0;for(int i=1; i<=s; i++)if(dp[v][i]>min(dp[u][i-1],max(w,dp[u][i])))dp[v][i]=min(dp[u][i-1],max(w,dp[u][i])),flag=0;}}if(flag)break;}int ans=0x3f3f3f3f;for(int i=0; i<=s; i++)ans=min(ans,dp[n][i]);printf("%d\n",((ans==0x3f3f3f3f)?(-1):ans));return 0;
}
「一本通 3.2 例 3」架设电话线相关推荐
- 「LOJ/一本通 3.2 例 3」架设电话线
输入格式 第一行三个整数 N,P,KN,P,K. 接下来 PP 行,每行三个整数 A_i,B_i,L_iAi,Bi,Li. 输出格式 若不存在从 11 到 NN 的路径,输出 -1.否则输出所需 ...
- 【C++】「一本通 1.1 例 4」加工生产调度
「一本通 1.1 例 4」加工生产调度 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1425 LibreOJ ...
- LibreOJ10082. 「一本通 3.3 例 1」Word Rings【二分+SPFA】
10082. 「一本通 3.3 例 1」Word Rings [题目描述] 传送门 [题解] 将一个字符串看成一条边,字符两端的字符看成节点,长度看成权值.二分枚举答案,最后SPFA刷正环,因为只要有 ...
- 【C++】「一本通 1.1 例 2」种树
「一本通 1.1 例 2」种树 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [解析] [代码] [来源] 一本通题库-1423 LibreOJ-10001 vjud ...
- #10001. 「一本通 1.1 例 2」种树
#10001. 「一本通 1.1 例 2」种树 满足n个区间种树的要求,求最少种多少棵数 思路 按照区间的尾巴来排序,因为如果区间有重叠的种在第一个区间的尾巴可以使得种树更少,所有每次始从尾巴开始种树 ...
- 【C++】「一本通 1.1 例 5」智力大冲浪
「一本通 1.1 例 5」智力大冲浪 [来源] [题目描述] [输入格式] [输出格式] [输入样例] [输出样例] [数据范围] [解析] [代码] [来源] 一本通题库-1426 LibreOJ- ...
- Loj 10115 「一本通 4.1 例 3」校门外的树 (树状数组)
题目链接:https://loj.ac/problem/10115 题目描述 原题来自:Vijos P1448 校门外有很多树,学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的 ...
- #10003. 「一本通 1.1 例 4」加工生产调度(贪心)
加工生产调度 题目描述 某工厂收到了n个产品的订单,这n个产品分别在A.B两个车间加工,并且必须先在A车间加工后才可以到B车间加工. 某个产品i在A.B两车间加工的时间分别为Ai.Bi.询问怎样安排这 ...
- 「一本通 4.1 例 3」校门外的树 (loj10115)
题目描述 原题来自:Vijos P1448 校门外有很多树,学校决定在某个时刻在某一段种上一种树,保证任一时刻不会出现两段相同种类的树,现有两种操作: K=1,读入 l,r表示在 l 到 r 之间种上 ...
最新文章
- 华为最强自研NPU问世,麒麟810“抛弃”寒武纪
- python一直报缩进错误_如何避免Python中的缩进错误
- WeUI用Toast组件显示Loading
- python秒数转化为时间用户jianpang_Python中文转为拼音
- android palette组件用法,Android Support Palette使用详解
- hue安装及基本测试-笔记
- linux程序崩溃时调用链,Linux 获取并分析程序崩溃时的调用堆栈
- powershell 学习地址
- js操作select标签
- 一个草根站长的创业故事之选择
- 撩课-Java面试宝典-第十六篇
- KeyMob--最智能的移动广告聚合平台
- gnu nano显卡测试软件,买不到了 篇四:站内首发——RX VEGA NANO评测
- python中的search的group(0),group(1).........的方法
- torch.spmm矩阵乘法
- arcgis怎么压缩tif文件_怎么把图片文件大小压缩到25k到40k还比较清晰
- 黑马程序员Java零基础视频教程(2022最新Java)B站视频学习笔记-Day15-阶段项目(拼图小游戏)(上篇)
- SQL视图View的总结和使用
- a类计算机机房建设标准,A类机房建设标准和B类机房建设标准有什么差别
- SwiftUI 精品项目之完整MOOC幕课iOS项目 含服务端 轮播欢迎页面(教程含源码)