这是什么鬼OJ啊都没见过害的我还交错语言CE了一发摔

想着懒得重写了直接把上一题的dij改了改就交了 然后RE

反应过来这题有负环 想着怎么标记负环同时不直接结束spfa

看了别人的代码感叹了一下我还是太弱 多学习吧 =.=

#include <iostream>
#include <string>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <queue>
#include <vector>
#include <set>
#include <algorithm>
#define INF 0x3F3F3F3F
using namespace std; int busy[], val[][];
int t, n, m, q, dist[];
bool cir[]; void spfa(int s)
{
int time[];
bool vis[];
queue<int> q;
memset(vis, , sizeof vis);
memset(time, , sizeof time);
memset(dist, 0x3f, sizeof dist); dist[s] = ;
vis[s] = true;
q.push(s);
while(!q.empty()){
int u = q.front();
q.pop();
vis[u] = false;
if(cir[u]) continue;
for(int i = ; i <= n; i++){
if(dist[i] > dist[u] + val[u][i]){
dist[i] = dist[u] + val[u][i];
if(!vis[i]){
q.push(i);
if(time[i]++ > n) cir[i] = true;
}
}
}
}
} int main()
{
scanf("%d", &t);
for(int i = ; i <= t; i++){
memset(val, 0x3f, sizeof val);
memset(cir, , sizeof cir); scanf("%d", &n);
for(int j = ; j <= n; j++){
scanf("%d", &busy[j]);
} scanf("%d", &m);
for(int j = ; j <= m; j++){
int s, d;
scanf("%d%d", &s, &d);
val[s][d] = (int)pow(busy[d] - busy[s], );
} spfa();
scanf("%d", &q);
printf("Case %d:\n", i);
while(q--){
int d;
scanf("%d", &d);
if(cir[d] || dist[d] < || dist[d] == INF) puts("?");
else printf("%d\n", dist[d]);
}
}
return ;
}

kuangbin_ShortPath O (LightOJ 1074)的更多相关文章

  1. lightoj 1074 spfa判断负环

     Extended Traffic Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %llu Sub ...

  2. LightOJ 1074 - Extended Traffic (SPFA)

    http://lightoj.com/volume_showproblem.php?problem=1074 1074 - Extended Traffic   PDF (English) Stati ...

  3. LightOj 1074 Extended Traffic (spfa+负权环)

    题目链接: http://lightoj.com/volume_showproblem.php?problem=1074 题目大意: 有一个大城市有n个十字交叉口,有m条路,城市十分拥挤,因此每一个路 ...

  4. lightoj 1074 - Extended Traffic(spfa+负环判断)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1074 题意:有n个城市,每一个城市有一个拥挤度ai,从一个城市I到另一个城市J ...

  5. SPFA(负环) LightOJ 1074 Extended Traffic

    题目传送门 题意:收过路费.如果最后的收费小于3或不能达到,输出'?'.否则输出到n点最小的过路费 分析:关键权值可为负,如果碰到负环是,小于3的约束条件不够,那么在得知有负环时,把这个环的点都标记下 ...

  6. LightOJ 1074 Extended Traffic (最短路spfa+标记负环点)

    Extended Traffic 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/O Description Dhaka city ...

  7. LightOJ 1074 Extended Traffic SPFA 消负环

    分析:一看就是求最短路,然后用dij,果断错了一发,发现是3次方,有可能会出现负环 然后用spfa判负环,然后标记负环所有可达的点,被标记的点答案都是“?” #include<cstdio> ...

  8. (简单) LightOJ 1074 Extended Traffic,SPFA+负环。

    Description Dhaka city is getting crowded and noisy day by day. Certain roads always remain blocked ...

  9. lightoj 1074

    这题怎么说呢,负环上的点都不行 网上也有很多解法 我用dfs的spfa解的 我发现网上别人的代码都是用bfs的spfa写的,我就用的dfs的,快了好多 代码还看的别人的,只有中间的spfa是自己写的 ...

随机推荐

  1. AFNetworking vs ASIHTTPRequest vs MKNetworkKit

    AFNetworking vs ASIHTTPRequest vs MKNetworkKit

  2. hdu 2044

    ps:好吧,WA了两次,第一次注意到要用long long了...但是printf那里给忘了...又WA.. 代码:#include "stdio.h"long long dp[5 ...

  3. 2016-1-10 手势解锁demo的实现

    一:实现自定义view,在.h,.m文件中代码如下: #import <UIKit/UIKit.h> @class ZLLockView; @protocol ZLLockViewDele ...

  4. linux下解决端口被占用的问题

    以端口9877为例,先查看是否有进程占用该端口 netstat -tln | grep 9877 然后查看占用该端口的进程的进程id lsof -i :9877 最后kill 命令结束该进程: kil ...

  5. 关于EOF和循环体的搭配使用。

    在oj中,变成如果有EOF和循环体的话,可能网页输入一个东西之后会输入另一个不知道是什么鬼,所以会造成这种情况.可能在输入应该输入的值以后还有一个值一起输入了,导致这种事情的发生. 比较两个图片观察 ...

  6. MATLAB简单实现ID3

    再看<MATLAB数据分析与挖掘实战>,简单总结下今天看到的经典的决策树算法——ID3. ID3:在决策树的各级节点上,使用信息增益的方法作为属性的选择标准,来帮助确定生成每个节点时所应采 ...

  7. HDOJ-三部曲一(搜索、数学)-1012-Shredding Company

    Shredding Company Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 20000/10000K (Java/Other) T ...

  8. IDisposable接口

    C#中IDisposable接口的主要用途是释放非托管资源.当不再使用托管对象时,垃圾回收器会自动释放分配给该对象的内存.但无法预测进行垃圾回收的时间.另外,垃圾回收器对窗口句柄或打开的文件和流等非托 ...

  9. 【转】同形的JavaScript:Web应用的未来

    原文转自:http://blog.jobbole.com/51786/ 在Airbnb,这几年我们已经学习了很多了关于构建富应用的经验,从2011年通过做我们的网站手机版,我们开始研究single-p ...

  10. lua元表和元方法 《lua程序设计》 13章 读书笔记

    lua中每个值都有一个元表,talble和userdata可以有各自独立的元表,而其它类型的值则共享其类型所属的单一元表.lua在创建table时不会创建元表. t = {} print(getmet ...