LightOJ
来源:互联网 发布:网络实名制 郭德纲 编辑:程序博客网 时间:2024/04/20 07:13
/*题意:有n个城市,每一个城市有一个拥挤度ai,下面m行数据(a,b)表示的是a,b两个位置同时能够得到a到b所花的时间为(a-b)^3,然后再给q个数据x,问从第一个城市到达第x个城市所花的时间,如果不能到达,或者时间小于3输出?否则输出所花的时间思路;这个题目是存在负环的,所以常规的判别负环是不能够 get over it所以我们可以用SPFA算法来搞一波事情;只要标记的位置访问的次数达到n+1次,那么就说明存在负环;*/#include<cstdio>#include<cstring>#include<queue>using namespace std;const int maxn=3e4+7;///通过这个题我深刻的认识到原来light oj 的re是判定为WA;坑惨了; const int inf=0x3f3f3f3f;int head[maxn],point[maxn],dis[maxn],num[maxn];bool vis[maxn];int n,m;struct node{ int to,w,next;}eage[maxn];///自从用上SPFA,立刻就是前向星见建图了,真的是好用,现在全家都用它,它也很烦了吧;void Add(int i,int u,int v,int w){ eage[i].to=v; eage[i].w=w; eage[i].next=head[u]; head[u]=i;}int busyness(int a,int b){ int t=point[b]-point[a]; return t*t*t;}void SPFA()///用队列维护的SPFA;{ for(int i=1;i<=n;i++) { vis[i]=false; dis[i]=inf; num[i]=0; } dis[1]=0; vis[1]=true; num[1]++; queue<int>Q; Q.push(1); while(!Q.empty()) { int u=Q.front(); Q.pop(); if(num[u]>n+1){vis[u]=true;continue;}///判负环最关键的操作; ///将每一个位置访问的次数进行统计,只需要超过n+1,那么肯定存负环; vis[u]=false; for(int i=head[u];i!=-1;i=eage[i].next) { int v=eage[i].to; if(dis[v]>dis[u]+eage[i].w) { dis[v]=dis[u]+eage[i].w; if(!vis[v]) { Q.push(v); vis[v]=true; num[v]++; } } } }}int main (){ int t; scanf("%d",&t); for(int cas=1;cas<=t;cas++) { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&point[i]); head[i]=-1; } scanf("%d",&m); for(int i=1;i<=m;i++) { int a,b; scanf("%d %d",&a,&b); int w=busyness(a,b); Add(i,a,b,mmm); } SPFA(); int q; scanf("%d",&q); printf("Case %d:\n",cas); for(int i=1;i<=q;i++) { int x; scanf("%d",&x); if(dis[x]==inf||dis[x]<3) printf("?\n");///输出问号的条件嘛; else printf("%d\n",dis[x]); } } return 0;}
阅读全文
0 0
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- [LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- LightOJ
- JS中call、apply、bind的区别
- 【大版本】企业级Office套包Spire.Office V2.16.23发布 | 附下载
- vector清空
- 在OpenSUSE42.3里面安装MongoDB
- WIN+Anaconda(python3.6)+Face_recognition安装
- LightOJ
- 模拟strncmp( )函数
- Java集合之面试篇
- windbg调试命令
- FZU
- IntelliJ IDEA 源值1.5已过时,将在未来所有版本中删除
- JavaScript执行机制
- 初用vue2写一个超简陋知乎日报(不与知乎日报api交互)超详细记录
- webRTCTutorial 项目文档目录