人生第一次AC黑题,我太感动了。

每日一题 day31 打卡

Analysis

先跑遍DJ,求出1到 i的最短路。
得到每个点到 1号点的距离后,从小到大排序一遍,这时便可以枚举每个点到 1号点的距离修筑地下隧道,每次将每个被枚举到的点加入一个集合(实际上可以由边权总和-与该点相连所有没有计入集合的边权总和)。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
#define int long long
#define maxn 200000+10
#define INF 2147483647
using namespace std;
inline int read()
{
int x=;
bool f=;
char c=getchar();
for(; !isdigit(c); c=getchar()) if(c=='-') f=;
for(; isdigit(c); c=getchar()) x=(x<<)+(x<<)+c-'';
if(f) return x;
return -x;
}
inline void write(long long x)
{
if(x<){putchar('-');x=-x;}
if(x>)write(x/);
putchar(x%+'');
}
int n,m,c,max_d=-INF,ans,sum,cnt;
int head[*maxn],book[maxn],vis[maxn];
struct node
{
int u,v,w,nex;
}edge[*maxn];
struct node1
{
int dis,num;
}x[maxn];
inline bool cmp(node1 x,node1 y)
{
return x.dis<y.dis;
}
inline void add(int x,int y,int z)
{
edge[++cnt].u=x;
edge[cnt].v=y;
edge[cnt].w=z;
edge[cnt].nex=head[x];
head[x]=cnt;
}
inline void dijkstra()
{
priority_queue<pair<int,int> > q;
for(int i=;i<=n;i++) x[i].dis=INF;
memset(book,,sizeof(book));
x[].dis=;
q.push(make_pair(,));
while(!q.empty())
{
int from=q.top().second;
q.pop();
if(book[from]) continue;
book[from]=;
for(int i=head[from];i;i=edge[i].nex)
{
int to=edge[i].v,val=edge[i].w;
if(x[to].dis>x[from].dis+val)
{
x[to].dis=x[from].dis+val;
q.push(make_pair(-x[to].dis,to));
}
}
}
}
signed main()
{
n=read();m=read();c=read();
for(int i=;i<=m;i++)
{
int x=read(),y=read(),z=read();
add(x,y,z);
add(y,x,z);
sum+=z;
}
dijkstra();
for(int i=;i<=n;i++) x[i].num=i;
sort(x+,x+n+,cmp);
vis[]=;
int ans=sum;
for(int i=;i<=n;i++)
{
vis[x[i].num]=;
for(int j=head[x[i].num];j;j=edge[j].nex)
if(vis[edge[j].v])
sum-=edge[j].w;
ans=min(ans,sum+x[i].dis*c);
}
write(ans);
return ;
}

请各位大佬斧正(反正我不认识斧正是什么意思)

最新文章

  1. c++语言友元函数和成员函数对运算符重载
  2. liunx 防火墙开放端口的设置
  3. AC日记——回文子串 openjudge 1.7 34
  4. log4j使用教程
  5. Xcode + Swift 制作动态原型
  6. 在java中HttpServletResponse响应中文出现乱码。
  7. 用户组,AD域控简介
  8. Spark Streaming 入门指南
  9. 用JSON 和 Google 实现全文翻译
  10. UITextView 限制输入字数
  11. 五毛的cocos2d-x学习笔记05-场景与场景动画,动作
  12. Ionic 常用组件解析
  13. MySQL DNS反查导致连接缓慢
  14. 【转】配置不当引起高危漏洞?看加密货币交易所如何正确用Spring Boot Actuaotr框架
  15. Python下载及Python最强大IDEPyCharm下载链接
  16. 反序列化失败Failed to deserialize --- local class incompatible: stream classdesc serialVersionUID
  17. Maven学习 三 Maven与Eclipse结合使用
  18. 微信小程序:scroll滑到指定位置
  19. 20155212 2016-2017-2 《Java程序设计》第8周学习总结
  20. windows常用命令行整理

热门文章

  1. Delphi百度语音【支持语音识别和语音合成】
  2. Redis-缓存有效期与淘汰策略
  3. int and Integer
  4. 4_PHP流程控制语句_3_程序跳转和终止语句
  5. js --桥接模式
  6. ConcurrentHashMap源码解析(JDK8)
  7. pip 和pip3的区别
  8. Spark 用Scala和Java分别实现wordcount
  9. Rabbitmq异常排查
  10. Red Hat Enterprise Linux 8正式发布