[kuangbin带你飞]专题四 最短路练习 O LightOJ 1074
2016-10-13 21:34
309 查看
题目地址:https://vjudge.net/contest/66569#problem/O
思路:每条边的权值由起点与终点决定,我考虑到可能会有权值为负的边,所以这题我用的是spfa。没有什么坑,应该是我这两天写的唯一一道1Y的题目了……
AC代码:
思路:每条边的权值由起点与终点决定,我考虑到可能会有权值为负的边,所以这题我用的是spfa。没有什么坑,应该是我这两天写的唯一一道1Y的题目了……
AC代码:
#include<iostream> #include<cstdio> #include<queue> #include<vector> #define INF 0x3f3f3f3f using namespace std; const int maxn=205; int a[maxn]; vector<pair<int,int> >E[maxn]; int d[maxn]; bool vis[maxn]; int in[maxn]; int n,m,q; void init() { for(int i=0;i<maxn;i++) { E[i].clear(); d[i]=INF; a[i]=0; vis[i]=false; in[i]=0; } } void spfa(int s) { queue<int>q; vis[s]=true; d[s]=0; q.push(s); while(!q.empty()) { int now=q.front(); q.pop(); if(in[now]++>n) return; vis[now]=false; for(int i=0;i<E[now].size();i++) { int v=E[now][i].first; if(d[v]>d[now]+E[now][i].second) { d[v]=d[now]+E[now][i].second; if(vis[v]) continue; vis[v]=true; q.push(v); } } } } int main() { int t; scanf("%d",&t); for(int casei=1;casei<=t;casei++) { init(); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%d",&a[i]); scanf("%d",&m); for(int i=0;i<m;i++) { int c,b; scanf("%d%d",&c,&b); int temp=(a[b]-a[c])*(a[b]-a[c])*(a[b]-a[c]); E[c].push_back(make_pair(b,temp)); } spfa(1); scanf("%d",&q); printf("Case %d:\n",casei); while(q--) { int temp; scanf("%d",&temp); if(d[temp]==INF || d[temp]<3) printf("?\n"); else printf("%d\n",d[temp]); } } }
相关文章推荐
- [kuangbin带你飞]专题四 最短路练习 M POJ 1062
- [kuangbin带你飞]专题四 最短路练习
- [kuangbin带你飞]专题四 最短路练习
- 【算法系列学习】SPFA邻接表最短路 [kuangbin带你飞]专题四 最短路练习 F - Wormholes
- [kuangbin带你飞]专题四 最短路练习 N POJ 1847
- [kuangbin带你飞]专题四 最短路练习D
- [kuangbin带你飞]专题四 最短路练习 -F
- [kuangbin带你飞]专题四 最短路练习
- 【算法系列学习】Dijkstra算法变形 [kuangbin带你飞]专题四 最短路练习
- [kuangbin带你飞]专题四 最短路练习 A
- [kuangbin带你飞]专题四 最短路练习 G POJ 1502
- [kuangbin带你飞]专题四 最短路练习 A
- 【算法系列学习】Dijkstra求最短路 [kuangbin带你飞]专题四 最短路练习 D - Silver Cow Party
- [kuangbin带你飞]专题四 最短路练习-G
- [kuangbin带你飞]专题四 最短路练习 K POJ 3159
- [kuangbin带你飞]专题四 最短路练习 G MPI Maelstrom
- [kuangbin带你飞]专题四 最短路练习
- [kuangbin带你飞]专题四 最短路练习 -A - Til the Cows Come Home
- [kuangbin带你飞]专题四 最短路练习H,I,J
- [kuangbin带你飞]专题四 最短路练习 H POJ 3660