最短路树。。。开眼界了。。。之前想也没想过。。。。


先跑出来1到每个点最短路,然后建树时要标记点的入度,否则会多连边。。。然后深搜时更新新答案就是

#include<cstdio>
#include<iostream>
#include<cstring>
#include<queue>
#define R register int
#define mp make_pair
const int N=,M=;
using namespace std;
inline int g() {
R ret=,fix=; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-:fix;
do ret=ret*+(ch^); while(isdigit(ch=getchar())); return ret*fix;
}
int n,m,t,cnt;
int vr[M<<],nxt[M<<],w[M<<],fir[N];
long long sz[N],d[N],ans,c[N];
bool vis[N];
inline void add(int u,int v,int ww) {vr[++cnt]=v,w[cnt]=ww,nxt[cnt]=fir[u],fir[u]=cnt;}
int vv[M<<],nn[M<<],ww[M<<],ff[N];
inline void aadd(int u,int v,int w) {vv[++cnt]=v,ww[cnt]=w,nn[cnt]=ff[u],ff[u]=cnt;}
priority_queue<pair<long long,int> > q;
inline void dijk() {
memset(d,0x3f,sizeof(long long)*(n+)); d[]=; q.push(mp(,));
while(q.size()) {
R u=q.top().second; q.pop(); if(vis[u]) continue; vis[u]=true;
for(R i=fir[u];i;i=nxt[i]) { R v=vr[i];
if(d[v]>d[u]+w[i]) d[v]=d[u]+w[i],q.push(mp(-d[v],v));
}
}
}
void dfs(int u) { vis[u]=true;
for(R i=ff[u];i;i=nn[i]) { R v=vv[i];
if(vis[v]) continue; dfs(v); sz[u]+=sz[v];
} ans=max(sz[u]*(d[u]-t),ans);//,cout<<u<<" "<<sz[u]<<" "<<d[u]<<" "<<t<<" "<<sz[u]*(d[u]-t)<<endl;
}
signed main() {
n=g(),m=g(),t=g(); for(R i=;i<=n;++i) sz[i]=g(); for(R i=,u,v,w;i<=m;++i) u=g(),v=g(),w=g(),add(u,v,w),add(v,u,w); cnt=;
dijk(); memset(vis,false,sizeof(vis)); for(R u=;u<=n;++u) for(R i=fir[u];i;i=nxt[i])
if(d[vr[i]]==d[u]+w[i]&&!vis[vr[i]]) vis[vr[i]]=true,aadd(u,vr[i],w[i]),aadd(vr[i],u,w[i]);
memset(vis,false,sizeof(bool)*(n+)); dfs(); printf("%lld\n",ans);
}

2019.04.25

最新文章

  1. HTML-一个网页的头部的大概框架(完善ing)
  2. LayaAir引擎——(四)
  3. Control Flow
  4. FMDB最简单的教程-3 清空数据表并将自增字段清零
  5. ORACLE fetch bulk collect into limit
  6. SpriteKitCommonUse
  7. 【Xamarin挖墙脚系列:学习资料大放送】
  8. HTTP学习笔记——URL与资源
  9. 1bpp像素遍历(找了半天,感谢github)
  10. 基于Node.js的微信JS-SDK后端接口实现
  11. 解决:wordpress error establishing a database connection problem
  12. ★MySQL一些很重要的SQL语句
  13. python中的operator.itemgetter函数
  14. MySQL 千万级 数据库或大表优化
  15. triplet loss 在深度学习中主要应用在什么地方?有什么明显的优势?
  16. java,php,js;AES 互通加解密
  17. 【POJ1187】陨石的秘密
  18. 2017-2018-2 20165228 实验二《Java面向对象程序设计》实验报告
  19. 关于 Xcode 调试工具 GDB and LLDB
  20. C#.NET常见问题(FAQ)-浮点数如何四舍五入

热门文章

  1. Velocity根据模版生成静态html
  2. .net 4 安装未成功,无意中的解决办法!
  3. python爬虫(4)--Cookie的使用
  4. Decorator模式 装饰器模式
  5. php5.6,curl上传的变化
  6. WebView三个方法区别(解决乱码问题)
  7. 进度条控件JProgressBar的使用
  8. nginx负载均衡, 配置地址带端口
  9. Ubuntu,kubuntu与xubuntu的差别 Ubuntu各版本主要差异
  10. Linux expect命令