bzoj4152 [AMPPZ2014]The Captain
2016-04-24 21:43
302 查看
最短路,先将x排序,然后把排序后权值相邻的点连边,再把y排序,也把权值相邻的点连边,求一遍1到n的最短路就好啦。
代码
代码
#include<cstdio> #include<queue> #include<algorithm> #define mp make_pair #define fi first #define sc second #define N 1000000 using namespace std; typedef long long ll; typedef pair<int,int> P; int n,i,dp,p ,pre ,tt ,ww ,flag ; int dis ; priority_queue<P,vector<P>,greater<P> > Q; struct g{ int a,b,id; }v ; bool cmp1(g u,g v) { return u.a<v.a; } bool cmp2(g u,g v) { return u.b<v.b; } void link(int x,int y,int z) { dp++;pre[dp]=p[x];p[x]=dp;tt[dp]=y;ww[dp]=z; } long long ans,f ,sum ; int main() { scanf("%d",&n); for (i=1;i<=n;i++) scanf("%d%d",&v[i].a,&v[i].b),v[i].id=i; sort(v+1,v+1+n,cmp1); for (i=1;i<n;i++) { link(v[i].id,v[i+1].id,abs(v[i].a-v[i+1].a)); link(v[i+1].id,v[i].id,abs(v[i].a-v[i+1].a)); } sort(v+1,v+1+n,cmp2); for (i=1;i<n;i++) { link(v[i].id,v[i+1].id,abs(v[i].b-v[i+1].b)); link(v[i+1].id,v[i].id,abs(v[i].b-v[i+1].b)); } int inf=1000000000; for (i=2;i<=n;i++) dis[i]=inf; Q.push(mp(0,1)); while (!Q.empty()) { P x=Q.top();Q.pop(); if (x.fi!=dis[x.sc]) continue; i=p[x.sc]; while (i) { if (dis[x.sc]+ww[i]<dis[tt[i]]) { dis[tt[i]]=dis[x.sc]+ww[i]; Q.push(mp(dis[tt[i]],tt[i])); } i=pre[i]; } } printf("%d\n",dis ); }
相关文章推荐
- fzu 2216 The Longest Straight
- 小技巧,关于OC打印指针地址和arc下的retaincount
- 浅谈特定型人工智能设计
- leetcode-70. Climbing Stairs
- adv7180 驱动 设置ain 输入
- TensorFlow人工智能引擎入门教程之九 RNN/LSTM循环神经网络长短期记忆网络使用
- 稀疏编码(Sparse Coding)的前世今生(一) 转自http://blog.csdn.net/marvin521/article/details/8980853
- STL map的遍历与pair的使用
- 生产者消费者模型——wait/notify/notifyAll使用
- BNU 51640 Training Plan DP
- Airbase-ng帮助
- Capturing 'self' strongly in this block is likely to lead to a retain cycle
- Failure to transfer org.apache.maven.plugins:maven-war-plugin:pom:2.2 from https://repo.maven.apache
- init done opengl support available
- 172. Factorial Trailing Zeroes
- HDU 2389 Rain on your Parade (HK二分图)
- rt3070无线网卡工作在staion模式----fl2440开发板
- leetcode-217. Contains Duplicate
- 5、Jenkins Email Extension Plugin插件使用说明
- hdu3487Play with Chain【splay】