POJ-1062-昂贵的聘礼
来源:互联网 发布:赵本山女儿淘宝店铺 编辑:程序博客网 时间:2024/05/16 06:26
最开始一直没想到关于等级怎么处理,后来参考了下别人的博客才知道枚举等级差值的方法~受教了!
地址:http://cavenkaka.iteye.com/blog/1189266
代码:
#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int maxn=110;const int inf=1<<29;int n,m,level[maxn],map[maxn][maxn],dist[maxn];bool vis[maxn];int Dijstra(int st){ for(int i=1;i<=n;i++)dist[i]=map[0][i]; for(int i=0;i<n;i++) {int mini=inf,pos=-1;for(int j=1;j<=n;j++) if(!vis[j]&&dist[j]<mini) {mini=dist[j];pos=j; }if(pos==-1) break;vis[pos]=1;for(int j=1;j<=n;j++) if(!vis[j]&&dist[j]>dist[pos]+map[pos][j])dist[j]=dist[pos]+map[pos][j]; } return dist[1];}int main(){ while(scanf("%d%d",&m,&n)!=EOF) {memset(level,0,sizeof(level));memset(map,0x7f,sizeof(map));for(int i=1;i<=n;i++){ int k; map[i][i]=0; scanf("%d%d%d",&map[0][i],&level[i],&k); while(k--) {int v,c;scanf("%d%d",&v,&c);map[v][i]=c; }}int ans=inf;for(int i=0;i<=m;i++){ memset(vis,0,sizeof(vis)); for(int j=1;j<=n;j++)if(level[j]<level[1]-i||level[j]>level[1]+m-i) vis[j]=1; ans=min(ans,Dijstra(0));}printf("%d\n",ans); } return 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 昂贵的聘礼
- POJ-2502-Subway
- iOS extracts: Saving and Loading Game State
- 动态符号链接的细节 - - blog of oss.lzu.edu.cn
- 串口通信
- 操作数据为 null 的函数 (oracle版)
- POJ-1062-昂贵的聘礼
- iOS extracts: Managing Memory with a Custom Image Loader
- 谁成就了“气功大师”王林?
- POJ-2249-Remmarguts' Date
- hdu(1205)吃糖果
- 使用ant打jar包
- java 简单的文件上传下载服务器模型(IO + 多线程)
- VC工具Depends
- Sift相关资料