O - Extended Traffic(判断负环)
题意:有n个城市,每一个城市有一个拥挤度ai,从一个城市I到另一个城市J的时间为:(aJ-aI)^3,存在负环。问从第一个城市到达第k个城市所话的时间,如果不能到达,或者时间小于3输出?否则输出所花的时间。。
这道题存在负环,而且所以要求出来所有负环(包括负环能到达的位置),可以用进队列的次数来判断
#include<stdio.h>
#include<vector>
#include<stack>
#include<queue>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std; const int maxn = 100005;
const int maxm = 205;
const int oo = 0xfffffff; struct node
{
int u, v, c, next;
}e[maxn];
int dis[maxm], head[maxm];
int busy[maxn], p[maxn];//p数组记录一共访问的次数
bool use[maxm]; void Add(int u, int v, int c, int k)
{
e[k].u = u;
e[k].v = v;
e[k].c = c*c*c;
e[k].next = head[u];
head[u] = k;
}
void spfa(int N)
{
queue<int> Q;
Q.push(1); while(Q.size())
{
int i = Q.front();Q.pop();
use[i] = false, p[i]++; for(int j=head[i]; j!=0; j=e[j].next)
{
int u = e[j].u, v = e[j].v, c = e[j].c; if(dis[u]+c < dis[v])
{
dis[v] = dis[u]+c; if(use[v] == false && p[v] <= N)
{
use[v] = true;
Q.push(v);
}
}
}
}
} int main()
{
int T, t=1; scanf("%d", &T); while(T--)
{
int i, N, M, k=1, u, v; scanf("%d", &N); for(i=1; i<=N; i++)
{
dis[i] = oo;
head[i] = 0;
p[i] = 0;
scanf("%d", &busy[i]);
} scanf("%d", &M); while(M--)
{
scanf("%d%d", &u, &v);
Add(u, v, busy[v]-busy[u], k++);
} scanf("%d", &M);
printf("Case %d:\n", t++); dis[1] = 0;
spfa(N); while(M--)
{
scanf("%d", &v); if(dis[v] == oo || dis[v] < 3 || p[v] > N)
printf("?\n");
else
printf("%d\n", dis[v]);
}
} return 0;
}
O - Extended Traffic(判断负环)的更多相关文章
- LightOJ - 1074 Extended Traffic (SPFA+负环)
		题意:N个点,分别有属于自己的N个busyness(简称b),两点间若有边,则边权为(ub-vb)^3.Q个查询,问从点1到该点的距离为多少. 分析:既然是差的三次方,那么可能有负边权的存在,自然有可 ... 
- Extended Traffic LightOJ - 1074  spfa判断负环
		//判断负环 在负环内的城市输出? #include <iostream> #include <queue> #include <cstdio> #include ... 
- spfa判断负环
		会了spfa这么长时间竟然不会判断负环,今天刚回.. [例题]poj3259 题目大意:当农场主 John 在开垦他的农场时,他发现了许多奇怪的昆虫洞.这些昆虫洞是单向的,并且可以把你从入口送到出口, ... 
- POJ3259(Wormholes) 判断负环
		题意: 农夫john发现了一些虫洞,虫洞是一种在你到达虫洞之前把你送回目的地的一种方式,FJ的每个农场,由n块土地(编号为1-n),M 条路,和W个 虫洞组成,FJ想从一块土地开始,经过若干条路和虫洞 ... 
- spfa 判断负环 (转载)
		当然,对于Spfa判负环,实际上还有优化:就是把判断单个点的入队次数大于n改为:如果总的点入队次数大于所有点两倍 时有负环,或者单个点的入队次数大于sqrt(点数)有负环.这样时间复杂度就降了很多了. ... 
- POJ 3259 Wormholes【最短路/SPFA判断负环模板】
		农夫约翰在探索他的许多农场,发现了一些惊人的虫洞.虫洞是很奇特的,因为它是一个单向通道,可让你进入虫洞的前达到目的地!他的N(1≤N≤500)个农场被编号为1..N,之间有M(1≤M≤2500)条路径 ... 
- POJ 3259 Wormholes ( SPFA判断负环 && 思维 )
		题意 : 给出 N 个点,以及 M 条双向路,每一条路的权值代表你在这条路上到达终点需要那么时间,接下来给出 W 个虫洞,虫洞给出的形式为 A B C 代表能将你从 A 送到 B 点,并且回到 C 个 ... 
- 利用Bellman-Ford算法(有向图) 判断负环
		// 根据Bellman-Ford算法的原理 // 判断负环(算法的最大更新次数,应该是顶点数-1次) // 而如果存在负环,算法会一直更新下去 // 我们根据循环进行的次数,来判断负环 #inclu ... 
- Wormholes POJ - 3259     spfa判断负环
		//判断负环 dist初始化为正无穷 //正环 负无穷 #include<iostream> #include<cstring> #include<queue> # ... 
- UVA 558 SPFA 判断负环
		这个承认自己没看懂题目,一开始以为题意是形成环路之后走一圈不会产生负值就输出,原来就是判断负环,用SPFA很好用,运用队列,在判断负环的时候,用一个数组专门保存某个点的访问次数,超过了N次即可断定有负 ... 
随机推荐
- ScheduleThreadPoolExecutor源码分析(二)
			DelayedWorkQueue: DelayedWorkQueue实现了BlockingQueue接口,因此其可以作为线程池的任务队列.BlockingQueue的主要属性有以下几个: privat ... 
- request.getContextPath获取绝对路径
			request.getContextPath获取绝对路径 博客分类: 经验+注意 其他 request.getContextPath 项目需求:所有jsp页必须通过Action转发,不能直接在地址栏链 ... 
- JSP中用include标签动态引入其它文件报错
			<jsp:include page="<%=path %>/include.jsp"></jsp:include> 报错:attribute f ... 
- PHP框架_ThinkPHP基础
			目录 1.ThinkPHP项目结构 2.ThinkPHP运行流程 3.ThinkPHP配置文件 4.ThinkPHP四种URL模式 5.ThinkPHP用户自定义函数 6.ThinkPHP模板展示及变 ... 
- QQ空间API接口
			(以下内容可能会随着时间改变而改变!) 查看对方QQ空间的背景音乐 http://qzone-music.qq.com/fcg-bin/cgi_playlist_xml.fcg?json=0& ... 
- 最优秀的5个Linux文本编辑器
			from: http://article.yeeyan.org/view/169956/174836 作为不久前举办的比赛的一部分内容,我从那些选出他们最喜欢的Linux文本编辑器的极客读者们那获得了 ... 
- A Script Pro nginx URL重写规则无法播放MP4解决方法
			I am using nginx and I have already add the line location /file/ { rewrite ^/-]+)/([-]+)/([^/]*)/([- ... 
- oracle常见为题汇总,以及一个简单数据连接操作工厂
			本人软件环境:win8.1 64位操作系统,vs2013,安装好了与oracle数据库对应的客户端 连接oracle数据库.以及操作数据库 1.使用IIS建立网站,浏览网页时候,提示“ ... 
- MapReduce程序开发之流量求和(八)
			1.分析记录手机流量的日志. 2.拿到日志中的一行数据,切分各个字段,抽取出我们需要的字段:手机号,上行流量,下行流量,然后封装成kv发送出去 3.使用java中的map方法: public clas ... 
- windows C 与 linux C区别?
			windows C库格式为 .dll( 动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件). ... 
