赛肯德 | 2017NEERC某题


我们枚举每一条边的流量x,将它作为底流(也就是比它大的的流量变成差值,比它小的流量为0),然后我们设x就是路径上第K大的那个边的流量。然后跑最短路,加上dis[n]就是当前的答案。然后取min即可。
算法时间复杂度\(O(n^2logn)\)
为什么这样子就是最小的呢?????我也很懵逼啊
因为你考虑ans_x是第K大的流量,设当前处理的为x。
如果按照上述规定来跑最短路,显然上述所求最短路加上K*ans_x就是答案,而且这个最短路径是一定确定的。下面我们就要求ans_x——如果我们进行遍历然后取min的话,如果保证x!=ans_x的时候不优呢?
如果x比ans_x小,那么“还有流量”的边一定大于等于K。这样的话最后统计答案最短路会长,x变小——但是变化幅度没有前面的大,所以不优。
如果x比ans_x大,那么“还有流量”的边一定小于等于K。这样的话最后统计答案最短路会短,x变大——但是变化幅度比前面的大,所以不优。
代码如下:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#define MAXN 5010
using namespace std;
int n,m,t,k;
int head[MAXN],done[MAXN];
long long ans=(long long)1e15;
long long dis[MAXN];
vector<int>vec;
struct Edge{int nxt,to,dis;}edge[MAXN<<1];
struct Node
{
int u;
long long w;
friend bool operator < (struct Node x,struct Node y)
{return x.w>y.w;}
};
inline void add(int from,int to,int dis)
{
edge[++t].nxt=head[from];
edge[t].to=to;
edge[t].dis=dis;
head[from]=t;
}
inline long long dij(int x)
{
priority_queue<Node>q;
for(int i=0;i<=n;i++) dis[i]=(long long)1e15,done[i]=0;
q.push((Node){1,0}); dis[1]=0;
while(!q.empty())
{
int u=q.top().u; q.pop();
if(done[u]) continue;
done[u]=1;
for(int i=head[u];i;i=edge[i].nxt)
{
int v=edge[i].to;
long long w=max(edge[i].dis-x,0);
//printf("v=%d w=%lld %lld\n",v,w,edge[i].dis);
if(dis[u]+w<dis[v])
dis[v]=dis[u]+w,q.push((Node){v,dis[v]});
}
}
return dis[n];
}
int main()
{
//freopen("skd.in","r",stdin);
//freopen("skd.out","w",stdout);
freopen("ce.in","r",stdin);
scanf("%d%d%d",&n,&m,&k);
for(int i=1;i<=m;i++)
{
int u,v,w;
scanf("%d%d%d",&u,&v,&w);
add(u,v,w),add(v,u,w);
vec.push_back(w);
}
ans=dij(0);
printf("%lld\n",ans);
for(int i=0;i<vec.size();i++)
ans=min(ans,1ll*vec[i]*k+dij(vec[i])),printf("%lld\n",ans);
printf("%lld\n",ans);
return 0;
}
赛肯德 | 2017NEERC某题的更多相关文章
- Kendall Rank(肯德尔等级)相关系数
1.简介在统计学中,肯德尔相关系数是以Maurice Kendall命名的,并经常用希腊字母τ(tau)表示其值.肯德尔相关系数是一个用来测量两个随机变量相关性的统计值.一个肯德尔检验是一个无参数假设 ...
- Kendall's tau-b(肯德尔)等级相关系数
Kendall's tau-b(肯德尔)等级相关系数:用于反映分类变量相关性的指标,适用于两个分类变量均为有序分类的情况.对相关的有序变量进行非参数相关检验:取值范围在-1-1之间,此检验适合于正方形 ...
- 团体程序设计天梯赛-练习集L1-014. 简单题
L1-014. 简单题 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 这次真的没骗你 —— 这道超级简单的题目没有任何输入. ...
- 省选训练赛第4场D题(多米诺骨牌)
题目来自FZU2163 多米诺骨牌 Time Limit: 1000 mSec Memory Limit : 32768 KB Problem Description Vasya很喜欢排多米诺 ...
- 2019浙大校赛--G--Postman(简单思维题)
一个思维水题 题目大意为,一个邮递员要投递N封信,一次从邮局来回只能投递K封.求最短的投递总距离.需注意,最后一次投递后无需返回邮局. 本题思路要点: 1.最后一次投递无需返回邮局,故最后一次投递所行 ...
- hash(2018年CSUST省赛选拔赛第一场B题+hash+字典树)
题目链接:http://csustacm.com:4803/problem/1006 题目: 思路:正如题目一样,本题是一个hash,比赛的时候用的字典树,但是不知道为什么一直RE(听学长说要动态开点 ...
- HDU 4902 Nice boat 2014杭电多校训练赛第四场F题(线段树区间更新)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4902 解题报告:输入一个序列,然后有q次操作,操作有两种,第一种是把区间 (l,r) 变成x,第二种是 ...
- 第七届蓝桥杯省赛javaB组 第七题剪邮票
剪邮票 如[图1.jpg], 有12张连在一起的12生肖的邮票.现在你要从中剪下5张来,要求必须是连着的.(仅仅连接一个角不算相连)比如,[图2.jpg],[图3.jpg]中,粉红色所示部分就是合格的 ...
- 2019浙大校赛--E--Potion(签到水题)
一丢丢思维就ok 题目大意: 魔法师要煮药,有n个等级的药,所需要的药物为a1,a2...an,意为第n级需要多少药物,下一行为库存的不同等级药物,药物可降级使用不可升级. 思路:从高级药物开始解,把 ...
随机推荐
- Git 知识总结
版本控制git之一 - 仓库管理 版本控制git之二-分支 git https://mp.weixin.qq.com/s/96FS12DTzbjAJQ1ynRNqdg git init 初始化目录 g ...
- logger 的使用 二logback使用配置详解
下面是一些最基本的,详细的参考:https://logback.qos.ch/manual/index.html 我的使用:把error日志打印在另一个文件,可以用ELK 统一管理 最近使用: < ...
- maven学习系列 之 常见问题
1.新建的maven项目无法修改 Project Facets 的 Dynamic Web Module 版本 RE: 在工程目录下有一个.settings文件夹,打开org.eclipse.wst. ...
- 如何连接并处理 sdf 数据库文件(便捷数据库处理)
如何连接并处理 sdf 数据库文件 SqlCeConnection cc = new SqlCeConnection(); DataTable dt = new DataTable(); ...
- 【转】C# 调用 C++ 数据转换
原文:https://www.cnblogs.com/82767136/articles/2517457.html 在合作开发时,C#时常需要调用C++DLL,当传递参数时时常遇到问题,尤其是传递和返 ...
- layer插件open方法回掉值问题
最近做项目需用到一个弹出层加载iframe页面的东西,首先想到layer插件,此插件用到过多次,兼容性很好,功能也强大,废话不多说上代码. 其实功能很简单,就是在目标页面选择一个值,回掉回来,说明一下 ...
- springboot中端点监管 endpoint actuator
1.pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...
- asdfadsf
bool is_r_value(int &&) { return true; } bool is_r_value(const int &) { return false; } ...
- 关于Yii2.0的url路径优化问题(配置虚拟路径)
backend/config/main.php 'urlManager' => [ 'enablePrettyUrl' => true, 'showScriptName' => fa ...
- Brophp Nginx 虚拟主机的配置
默认情况下,Nginx 不支持 pathinfo 配置,通过查看了 Thinkphp Nginx 的配置情况,对虚拟主机配置修改如下: server { listen 80; list ...