题目:http://poj.org/problem?id=3013

求每个点到1的最短路。不是最小生成树。

总是WA。看讨论里说INF至少2e10,于是真的A了!

算一下,dis最大可能3276800000,于是开成3276800001,果然可A!还快了16ms(?)!

不过出现了: [Warning] this decimal constant is unsigned only in ISO C90 [enabled by default]。是什么意思呢?

总之以后设上界的时候还是略算一下。何况自己常用的0x 7 f f f f f f f也并不是十分大。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
const long long INF=;
int T,n,m,head[],xnt,x,y,c[],z;
long long ans,dis[];
bool in[],flag;
struct Edge{
int next,to,w;
Edge(int ne=,int t=,int o=):next(ne),to(t),w(o) {}
}edge[];
queue<int> q;
void spfa()
{
while(q.size())q.pop();
memset(in,,sizeof in);
in[]=;dis[]=;
q.push();
while(q.size())
{
int k=q.front();q.pop();
in[k]=;///////!
for(int i=head[k],v;i;i=edge[i].next)
if(dis[k]+edge[i].w<dis[v=edge[i].to])
{
dis[v]=dis[k]+edge[i].w;
if(!in[v])
{
in[v]=;////////!
q.push(v);
}
}
}
}
int main()
{
scanf("%d",&T);
while(T--)
{
memset(head,,sizeof head);
ans=;xnt=;flag=;
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)scanf("%d",&c[i]),dis[i]=INF;
for(int i=;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&z);
edge[++xnt]=Edge(head[x],y,z);head[x]=xnt;
edge[++xnt]=Edge(head[y],x,z);head[y]=xnt;
}
spfa();
for(int i=;i<=n;i++)
{
if(dis[i]==INF)
{
flag=;break;
}
ans+=c[i]*dis[i];
}
if(flag) printf("No Answer\n");
else printf("%lld\n",ans);
}
return ;
}

最新文章

  1. JS实现动态显示当前时间
  2. Python模块应用 (linecache)
  3. 15,SFDC 管理员篇 - 变更和部署
  4. C#多线程的异步委托/调用
  5. git使用详细介绍
  6. Java 日期格式化工具类
  7. C# 使用HttpWebRequest通过PHP接口 上传文件
  8. Struts2之过滤器和拦截器的区别
  9. 你能不用计算机来计算S=a+(a+1)+(a+2) + ...... + b的解的数目吗?
  10. web api control注册及重写DefaultHttpControllerSelector、ApiControllerActionSelector、ApiControllerActionInvoker
  11. smarty练习:考试系统
  12. python基础--模块&amp;包
  13. 使用Lock实现信号量
  14. url参数中出现+、空格、=、%、&amp;、#等字符的解决办法
  15. IE浏览器img不显示解决
  16. 智慧航空AI大赛-阿里云算法大赛总结 第一赛季总结
  17. es6学习笔记--let和const
  18. SpringBoot自动装配源码解析
  19. synchronized 是可重入锁吗?为什么?
  20. btcpool之Stratum协议

热门文章

  1. DevExpress v17.2新版亮点—WinForms篇(五)
  2. git账号申请及创建基线
  3. SVN 将主干的代码合并到分支上
  4. I.MX6 Linux Serial Baud Rate hacking
  5. 如何释放vector变量
  6. Unity 3D游戏-NPC对话系统With XML
  7. CodeForces - 1097D:Makoto and a Blackboard (积性)
  8. 20155201 2016-2017-2 《Java程序设计》第七周学习总结
  9. 51Nod 1058: N的阶乘的长度(斯特林公式)
  10. Visual Studio Code打造Markdown编辑器