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

只是求以1为起点的最短路罢了。稍稍判断一下在边上的情况。

多亏提醒:毒数据——n==1!一定要dis [ k ] >= ans!!!

注意输出格式(换行)。

#include<iostream>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;
int n,m,head[],xnt,x,y,T;
int hp[],cnt,k1,k2;
ll dis[],z;
double ans;
bool vis[];
struct Edge{
int next,to;
ll w;
Edge(int a=,int b=,ll c=):next(a),to(b),w(c) {}
}edge[];
ll abss(ll k)
{
if(k<)k=-k;
return k;
}
void push(int k)
{
hp[++cnt]=k;
int now=cnt;
while(now>)
{
int tp=(now>>);
if(dis[hp[now]]<dis[hp[tp]])swap(hp[now],hp[tp]);
else break;
now=tp;
}
}
int del()
{
int res=hp[];
hp[]=hp[cnt--];
int now=;
while((now<<)<=cnt)
{
int tp=(now<<);
if(tp<cnt&&dis[hp[tp+]]<dis[hp[tp]])tp++;
if(dis[hp[tp]]<dis[hp[now]])swap(hp[tp],hp[now]);
else break;
now=tp;
}
return res;
}
int main()
{
while(++T)
{
scanf("%d%d",&n,&m);
if(!n&&!m)return ;
memset(dis,,sizeof dis);
memset(head,,sizeof head);
memset(vis,,sizeof vis);
xnt=;ans=;k1=;k2=;
for(int i=;i<=m;i++)
{
scanf("%d%d%lld",&x,&y,&z);
edge[++xnt]=Edge(head[x],y,z);head[x]=xnt;
edge[++xnt]=Edge(head[y],x,z);head[y]=xnt;
}
dis[]=;push();
while(cnt)
{
int k=del();
while(cnt&&vis[k])k=del();
if(vis[k])break;
vis[k]=;
if(dis[k]>=ans)//////////
{
ans=dis[k];k1=k;
}
for(int i=head[k],v;i;i=edge[i].next)
if(!vis[v=edge[i].to]&&dis[k]+edge[i].w<dis[v])
{
dis[v]=dis[k]+edge[i].w;
push(v);
}
}
double c=;
for(int i=;i<=n;i++)
for(int j=head[i],v;j;j=edge[j].next)
if(abss(dis[i]-dis[v=edge[j].to])<edge[j].w&&
(c=max(dis[i],dis[v])+(double)(edge[j].w-abss(dis[i]-dis[v]))/)>ans)
{
ans=c;k1=min(i,v);k2=max(i,v);
}
printf("System #%d\n",T);
if(!k2)
printf("The last domino falls after %.1lf seconds, at key domino %d.\n\n",ans,k1);
else
printf("The last domino falls after %.1lf seconds, between key dominoes %d and %d.\n\n",ans,k1,k2);
}
}

POJ1135 Domino Effect的更多相关文章

  1. POJ1135 Domino Effect(SPFA)

    题目大概是,普通骨牌连接两张关键骨牌,一旦一张关键骨牌倒下与其相邻的普通骨牌也倒下,普通骨牌倒下与其相邻的骨牌也倒下.给出所有有普通骨牌相连的两个关键骨牌之间普通骨牌倒下所需时间,问1号关键骨牌开始倒 ...

  2. [ACM_图论] Domino Effect (POJ1135 Dijkstra算法 SSSP 单源最短路算法 中等 模板)

    Description Did you know that you can use domino bones for other things besides playing Dominoes? Ta ...

  3. CF 405B Domino Effect(想法题)

    题目链接: 传送门 Domino Effect time limit per test:1 second     memory limit per test:256 megabytes Descrip ...

  4. POJ 1135 Domino Effect(Dijkstra)

    点我看题目 题意 : 一个新的多米诺骨牌游戏,就是这个多米诺骨中有许多关键牌,他们之间由一行普通的骨牌相连接,当一张关键牌倒下的时候,连接这个关键牌的每一行都会倒下,当倒下的行到达没有倒下的关键牌时, ...

  5. POJ 1135 Domino Effect (spfa + 枚举)- from lanshui_Yang

    Description Did you know that you can use domino bones for other things besides playing Dominoes? Ta ...

  6. UVA211-The Domino Effect(dfs)

    Problem UVA211-The Domino Effect Accept:536  Submit:2504 Time Limit: 3000 mSec  Problem Description ...

  7. POJ 1135 Domino Effect (Dijkstra 最短路)

    Domino Effect Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 9335   Accepted: 2325 Des ...

  8. POJ 1135.Domino Effect Dijkastra算法

    Domino Effect Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10325   Accepted: 2560 De ...

  9. zoj 1298 Domino Effect (最短路径)

    Domino Effect Time Limit: 2 Seconds      Memory Limit: 65536 KB Did you know that you can use domino ...

随机推荐

  1. html form表单提交后处理返回数据

    上传如果通过form提交并且需要处理返回值.(其实用ajax上传方式刚好,看需要) 可以这么做: <form id="importBookForm" action=" ...

  2. 线程正常终止pthread_exit,pthread_join,pthread_kill,pthread_cancel,sigwait,sigaddset

    int pthread_join(pthread_t thread, void **retval); int pthread_detach(pthread_t thread); void pthrea ...

  3. 改变进程的优先级,nice,getpriority,setpriority

    int getpriority(int which, int who);返回一组进程的优先级 参数which和who确定返回哪一组进程的优先级 The value which is one of PR ...

  4. spring boot学习(十三)SpringBoot缓存(EhCache 2.x 篇)

    SpringBoot 缓存(EhCache 2.x 篇) SpringBoot 缓存 在 Spring Boot中,通过@EnableCaching注解自动化配置合适的缓存管理器(CacheManag ...

  5. 《Python》 生成器和列表推导式

    一.初识生成器: 生成器就是自己用Python代码写的迭代器,生成器的本质就是迭代器. 1.Python中提供的生成器: 1.生成器函数: 使用yield语句而不是return语句返回结果.yield ...

  6. 太完美 TWM000极度精简版XP20130123终结美化版

    TWM000极度精简版XP20130123终结美化版:蛋蛋20130123终结版为蓝本,虫子提供的美化包进行了美化.此版经测试完美在Z77主板开启AHCI安装,此为最终版之美化版!LiteXPMH.i ...

  7. Tomcat服务器启动失败:Could not publish server configuration for Tomcat v8.0 Server at localhost. Multiple Contexts have a path of

    在eclipse中使用Tomcat8.0时,出现了如下错误: 解决办法: 在建立Tomcat服务时,eclipse会自动生成一个Servers的项目. 在这个项目中,找到你部署项目的服务文件夹. 在这 ...

  8. IOS工作中的问题(转)

    1.UITableView的scrollDelegate问题 下午遇到一个奇怪的问题,之前都没有注意过,由于A VC中要实现tableView和其他View位置的联动,所以实现了tableView的d ...

  9. Android 源码阅读之SMS,MMS

    主界面: com.android.mms.ui.ConversationList.java  [extends ListActivity] 点击新建信息:onListItemClick -〉 posi ...

  10. poll 从应用层到内核实现解析

    poll函数的原型如下所示: int poll(struct pollfd *fds, nfds_t nfds, int timeout); poll可以监视多个描述符的属性变化,其参数的意义如下: ...