昂贵的聘礼,(最短路的应用),Poj(1063)
题目链接:http://poj.org/problem?id=1062
很好的一道中文题。
思路:
把每种替换当做一条边,权重为交易优惠,就是求原点0到物品1的最短路。
这里有限制条件,每个节点还有等级,一条路中任意两个点之间的等级小于li.这里,我只要枚举每个点,以它为标准,删掉那些等级差大于li的点,再进行dijkstra就行了。
#include <stdio.h>
#include <string.h>
#include <algorithm>
#define NUM 1005
#define maxint (1<<29) using namespace std; int li,n;
int c[NUM][NUM];
int dist[NUM];
int pre[NUM];
int vis[NUM];
int x[NUM];
int lv[NUM]; void dijkstra()
{
for(int i=;i<=n;i++)
dist[i] = c[][i];
for(int i=;i<=n;i++)
{
int u = ;
int minl = maxint;
for(int j=;j<=n;j++)
{
if(minl>dist[j]&&!vis[j])
{
u = j;
minl = dist[j];
}
} if(u == )
break; vis[u] = true; for(int j=;j<=n;j++)
{
if(!vis[j]&&c[u][j]>&&dist[j]>dist[u]+c[u][j])
dist[j] = dist[u]+c[u][j];
}
} }
int main()
{
memset(c,,sizeof(c));
memset(lv,,sizeof(lv));
memset(dist,maxint,sizeof(dist));
memset(vis,false,sizeof(vis)); scanf("%d%d",&li,&n);
for(int i=;i<=n;i++)
{
scanf("%d%d%d",&c[][i],&lv[i],&x[i]);
for(int j=;j<=x[i];j++)
{
int t,u;
scanf("%d%d",&t,&u);
c[t][i] = u; ///替代品到物品i
}
} int tmp;
int minprice = maxint;
for(int i=;i<=n;i++)
{
int maxlv = lv[i];
for(int j=;j<=n;j++)
{
if(lv[j]>maxlv||maxlv-lv[j]>li)
vis[j] = true;
else vis[j] = false;
} dijkstra();
tmp = dist[]; if(tmp<minprice)
minprice = tmp;
}
printf("%d\n",minprice); return ;
}
昂贵的聘礼,(最短路的应用),Poj(1063)的更多相关文章
- POJ - 1062 昂贵的聘礼(最短路Dijkstra)
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000KB 64bit IO Format: %I64d & %I64u SubmitStatus Descr ...
- POJ1062昂贵的聘礼[最短路建模]
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 45892 Accepted: 13614 Descripti ...
- POJ 1062 昂贵的聘礼 最短路+超级源点
Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...
- POJ 1062 昂贵的聘礼 最短路 难度:0
http://poj.org/problem?id=1062 #include <iostream> #include <cstring> #include <queue ...
- poj 1062 昂贵的聘礼 最短路 dijkstra
#include <cstdio> #include <cmath> #include <cstring> #include <ctime> #incl ...
- POJ-1062 昂贵的聘礼( 最短路 )
题目链接:http://poj.org/problem?id=1062 Description 年轻的探险家来到了一个印 第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用1000 ...
- ACM/ICPC 之 昂贵的聘礼-最短路解法(POJ1062)
//转移为最短路问题,枚举必经每一个不小于酋长等级的人的最短路 //Time:16Ms Memory:208K #include<iostream> #include<cstring ...
- M - 昂贵的聘礼 最短路 dij
http://poj.org/problem?id=1062 这个题目有一点点特别,因为数据很小也可以用Floyd跑,但是个人比较钟爱dij. 这个dij是怎么走的呢,首先就是普通的建图,然后就是带上 ...
- POJ1062 昂贵的聘礼(最短路)
题目链接. 分析: 一开始以为简单的DFS,直接做,MLE了. 本体应该用最短路径(Dijkstra算法)做. 此题的关键在于等级限制的处理,采用枚举,即假设酋长等级为5,等级限制为2,那么需要枚举等 ...
- 最短路(Dijkstra) POJ 1062 昂贵的聘礼
题目传送门 /* 最短路:Dijkstra算法,首先依照等级差距枚举“删除”某些点,即used,然后分别从该点出发生成最短路 更新每个点的最短路的最小值 注意:国王的等级不一定是最高的:) */ #i ...
随机推荐
- python3 发送邮件添加附件
from email.header import Headerfrom email.mime.application import MIMEApplicationfrom email.mime.mul ...
- Yii2 urles
public function rules(){ return [ //必须填写 ['email, username, password,agree,verifyPassword,verifyCode ...
- 关于WampServer一些配置修改
1.解决WAMP mysql中文乱码问题(在mysql的my.ini文件中) 1).找到client字段并添加:default-character-set=utf8 2).找到mysql字段并添加: ...
- tencent intern learning
gslb全局负载均衡 (负载均衡的问题就是某些session保存在某台服务器中,这个用户就只能用那台服务器服务了) jwt vs 传统cookies & session (jwt类似于公 ...
- 《nginx 三》实现nginx的动态负载均衡——实战
Http动态负载均衡 什么是动态负载均衡 传统的负载均衡,如果Upstream参数发生变化,每次都需要重新加载nginx.conf文件, 因此扩展性不是很高,所以我们可以采用动态负载均衡,实现Upst ...
- jqGrid方法整理
一.colModel 表体结构配置 name 必要的属性,具有唯一标识性,如在弹出的editform窗体中,将作为input的name属性 index 为排序用,最方便的是设为数据库字段 ...
- Jersey前后端交互初体验
一 get请求 前端 基本的GET请求 $.ajax({ type : "get", url : "../rest/api/account/delete", d ...
- HUD 5593——ZYB's Tree——————【树形dp】
ZYB's Tree Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Tota ...
- c#操作excel的一些记录
//开启Excel APP Excel.Application xlApp = new Excel.Application(); //获取程序下bin—>debug下的文件 ...
- 动态LINQ(Lambda表达式)构建
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...