poj 1062 最短路
2015-06-10 20:32
239 查看
// // main.cpp // poj1062 // // Created by Fangpin on 15/6/10. // Copyright (c) 2015年 FangPin. All rights reserved. // #include <iostream> #include <cstdio> #include <cstring> #include <vector> const int inf=0x6f6f6f6f; using namespace std; struct Edge{ int from,to,dist; }; vector<Edge> edge1,edge2; struct Data{ int price,level; }; vector<Data> data; int d[500],low,high,n; int bf(){ for(int i=0;i<n;++i){ bool flag=false; for(int j=0;j<edge2.size();++j){ Edge &e=edge2[j]; if(d[e.to]>d[e.from]+e.dist){ d[e.to]=d[e.from]+e.dist; flag=true; } } if(!flag) break; } int ans=inf; for(int i=0;i<n;++i){ // cout<<i<<" "<<d[i]<<" "<<d[i]+data[i].price<<endl; ans=min(ans,d[i]+data[i].price); } // ans=min(ans,d[i]); return ans; } int main(int argc, const char * argv[]) { int m; while(~scanf("%d%d",&m,&n)){ data.clear(); edge1.clear(); edge2.clear(); int king_level; for(int i=0;i<n;++i){ Data tem; int x; scanf("%d%d%d",&tem.price,&tem.level,&x); if(!i) king_level=tem.level; data.push_back(tem); while(x--){ int to,dist; scanf("%d%d",&to,&dist); Edge e; e.from=i;e.to=to-1;e.dist=dist; edge1.push_back(e); } } low=king_level;high=low+m; int ans=inf; // edge2=edge1; // for(int i=0;i<edge2.size();++i) // cout<<"edge "<<edge2[i].from<<" "<<edge2[i].to<<" "<<edge2[i].dist<<endl; // memset(d,inf,sizeof(d)); // d[0]=0; // ans=min(ans,bf()); while(high>=king_level){ edge2.clear(); memset(d,inf,sizeof(d)); d[0]=0; for(int i=0;i<edge1.size();++i){ const Edge &e=edge1[i]; int x=data[e.from].level,y=data[e.to].level; if(x>=low && x<=high && y>=low && y<=high){ edge2.push_back(e); } } ans=min(ans,bf()); --low; --high; } cout<<ans<<endl; } return 0; }
相关文章推荐
- POJ1062 昂贵的聘礼 【DFS】
- POJ1062--昂贵的聘礼--DFS
- POJ 1062 昂贵的聘礼【Dijkstra算法变形】
- HTML5之FileReader的使用
- hdu3015 Disharmony Trees
- canjs基础教程之Route
- springmvc 开涛 注解式控制器
- hdu 1556 Color the ball
- 字节对齐导致sizeof()比实际更大
- JSONObject 试错
- 已定义的函数有返回值,函数调用可以作为一个函数的实参,但是不能作为形参
- 如何花两年时间面试一个人
- CPU读取磁盘数据的操作时序(CPU和磁盘控制器)
- Android 手动按power键上锁,没有锁屏提示音,无法恢复【单机必现】
- cxf框架和spring框架集成的Webservice例子
- Android中的android:layout_width和android:width
- 企业如何快速搭建大数据处理系统
- Convert Sorted Array to Binary Search Tree
- python解析pcap文件中的http数据包
- 五大算法---分治算法