poj 1062 昂贵的聘礼
来源:互联网 发布:没有安全感 知乎 编辑:程序博客网 时间:2024/06/05 20:15
题目链接:
http://poj.org/problem?id=1062
这道题目不是自己独立做出来的,本来只是参考了部分题解,后来因为一些细节。。就把代码改的基本和题解一样了= =
说一下思路:题目的难点主要就是等级制度和替换。只要将这个等级制度处理好,题目就可以变形成一个裸的dijkstra。处理等级制度,参考题解用在了构图上,即用物品做点,价钱作为边长。然后用dijkstra代换,求出最短路,也就是最省钱的方案。
#include<iostream>#include<cstring>using namespace std;const int inf=0x7fffffff;int a[120][120]={};int lvl[120]={};int x[120]={};int dis[120];bool f[120]={};int n,m;int dijkstra(){ for(int i=1;i<=n;i++) { dis[i]=a[0][i]; } // memset(f,0,sizeof(f)); //f[st]=1;dis[st]=0; for(int i=1;i<n;i++) { int minn=inf,k=0; for(int j=1;j<=n;j++) if(!f[j]&&dis[j]<minn) { minn=dis[j]; k=j; } if(k==0) break; f[k]=1; for(int j=1;j<=n;j++) { if(!f[j]&&a[k][j]>0&&dis[k]+a[k][j]<dis[j]) dis[j]=dis[k]+a[k][j]; } } return dis[1];}void init(){ memset(a,0,sizeof(a)); memset(lvl,0,sizeof(lvl)); memset(dis,inf,sizeof(dis)); memset(f,false,sizeof(f)); cin>>m>>n; for(int i=1;i<=n;i++) { cin>>a[0][i]>>lvl[i]>>x[i]; for(int j=1;j<=x[i];j++) { int t1,t2; cin>>t1>>t2; a[t1][i]=t2; } } int maxlv; int tmoney; int minmoney=inf; for(int i=1;i<=n;i++) { maxlv=lvl[i]; for(int j=1;j<=n;j++) { if(lvl[j]>maxlv||maxlv-lvl[j]>m) { f[j]=1; } else f[j]=0; } tmoney=dijkstra(); if(minmoney>tmoney) minmoney=tmoney; } cout<<minmoney<<endl;}int main(){ init(); //print(); return 0;}
0 0
- poj 1062 昂贵的聘礼
- POJ 1062 昂贵的聘礼
- poj 1062 昂贵的聘礼
- poj 1062 昂贵的聘礼
- poj 1062 昂贵的聘礼
- poj 1062 昂贵的聘礼
- poj 1062 昂贵的聘礼
- poj-1062-昂贵的聘礼
- poj 1062 昂贵的聘礼
- poj 1062 昂贵的聘礼
- POJ-1062-昂贵的聘礼
- POJ 1062 昂贵的聘礼
- POJ 1062 昂贵的聘礼
- POJ 1062 昂贵的聘礼
- poj 1062 -- 昂贵的聘礼
- poj 1062 昂贵的聘礼
- poj 1062 昂贵的聘礼
- POJ 1062 昂贵的聘礼
- shell入门指南
- HDU AC Me
- 解决ubuntu 12.04.2 无法进入图形界面、无法全屏,安装VMware tools
- HBase源码分析之HRegionServer上的MovedRegionsCleaner工作线程
- Android中的Apk的加固(加壳)原理解析和实现(转)
- poj 1062 昂贵的聘礼
- 第二周项目二就拿胖子说事
- Apache Stratos探究:4.1.x Application Resource Definition(应用程序资源定义)
- 第3周项目3—输出星号图(空心三角形)
- android studio 报错:Binary XML file line #7: Error inflating class android.support.v7.widget.RecyclerV
- 解决Myeclipse开发jsp卡的问题
- 阅后即焚的产品价值
- Bloom Filter
- EigenFace的使用 python