M - 昂贵的聘礼 - poj1062
Description
为了方便起见,我们把所有的物品从1开始进行编号,酋长的允诺也看作一个物品,并且编号总是1。每个物品都有对应的价格P,主人的地位等级L,以及一系列的替代品Ti和该替代品所对应的"优惠"Vi。如果两人地位等级差距超过了M,就不能"间接交易"。你必须根据这些数据来计算出探险家最少需要多少金币才能娶到酋长的女儿。
Input
Output
#include<stdio.h>
#include<vector>
#include<stack>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std; const int maxn = ;
const int maxm = ;
const int oo = 0xfffffff; struct node
{
int u, v, price, next;
}e[maxn];
int head[maxm], lv[maxm], p[maxm];
bool use[maxm]; void Add(int u, int v, int c, int k)
{
e[k].u = u;
e[k].v = v;
e[k].price = c;
e[k].next = head[u];
head[u] = k;
}
int Dfs(int MaxLv, int MinLv, int k, int M)
{
int MinP = oo; for(int i=head[k]; i!=; i=e[i].next)
{
int v = e[i].v;
int c = e[i].price; if(lv[v] >= MinLv && lv[v] <= MaxLv && use[v] == false)
{
use[v] = true; int L = min(MaxLv, lv[v]+M);
int R = max(MinLv, lv[v]-M); MinP = min(MinP, Dfs(L, R, v, M)+c); use[v] = false;
}
} return min(p[k], MinP);
} int main()
{
int N, M; while(scanf("%d%d", &M, &N) != EOF)
{
int i, k=, v, price, T; memset(head, , sizeof(head)); for(i=; i<=N; i++)
{
scanf("%d%d%d", &p[i], &lv[i], &T); while(T--)
{
scanf("%d%d", &v, &price);
Add(i, v, price, k++);
}
} use[] = true;
int ans = Dfs(lv[]+M, lv[]-M, , M); printf("%d\n", ans);
} return ;
}
M - 昂贵的聘礼 - poj1062的更多相关文章
- 昂贵的聘礼--POJ1062
昂贵的聘礼 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other) Total Submiss ...
- 昂贵的聘礼---poj1062(最短路)
题目链接:http://poj.org/problem?id=1062 题意很清楚: 可以虚拟一个起点0,由于存在等级关系,所以可以枚举等级,然后把各种关系建立边,然后计算0到1的距离即可,去最小值即 ...
- [poj1062]昂贵的聘礼_最短路_离散化
昂贵的聘礼 poj-1062 题目大意:原文链接?不是英文题,自己看 注释:$1\le N \le 100$. 想法:开始的想法有些过于简单,因为落下了一个条件:就是等级限制是一条路径上的任意两点而不 ...
- POJ1062昂贵的聘礼[最短路建模]
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 45892 Accepted: 13614 Descripti ...
- POJ-1062 昂贵的聘礼 (最短路)
POJ-1062 昂贵的聘礼:http://poj.org/problem?id=1062 题意: 有一个人要到1号点花费最少的钱,他可以花费一号点对应的价格,也可以先买下其他一些点,使得费用降低. ...
- POJ1062昂贵的聘礼(dijkstra)
昂贵的聘礼 题目大意是说有N个物品,每个物品都有自己的价格,但同时某些物品也可以由其他的(可能不止一个)替代品,这些替代品的价格比较“优惠”,问怎么样选取可以让你的花费最少来购买到物品1 由于有N个物 ...
- POJ1062 昂贵的聘礼 【DFS】
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 37475 Accepted: 10816 Descripti ...
- POJ1062昂贵的聘礼(经典) 枚举区间 +【Dijkstra】
<题目链接> 昂贵的聘礼 Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用1000 ...
- POJ1062:昂贵的聘礼(dfs)
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 58108 Accepted: 17536 题目链接:http ...
随机推荐
- VMware复制Centos6虚拟机要改的地方
1.删除文件 /etc/udev/rules.d/70-persistent-net.rules (它会绑定你网卡信息) 2.重新配置 # vi /etc/sysconfig/network-scr ...
- C# 枚举
一.在学习枚举之前,首先来听听枚举的优点. 1.枚举能够使代码更加清晰,它允许使用描述性的名称表示整数值. 2.枚举使代码更易于维护,有助于确保给变量指定合法的.期望的值. 3.枚举使代码更易输入. ...
- Unable to load configuration. - bean - jar: ....struts2-core-2.1.8.1.jar!/struts-default.xml:47:178
摘录的异常代码: 2013-12-14 22:42:07 com.opensymphony.xwork2.util.logging.commons.CommonsLogger error严重: Dis ...
- 百度地图实现车辆轨迹移动播放(baidu map api)
开发技术:jquery,js baidu map api,json,ajax QQ1310651206
- php数组基础
一.php数组的声明 1.数组中可以有任意类型的数据 2.长度可以变长 3.数组的分类: a.索引数组:数组是以从0开始的帧数作为索引值 ...
- FASTMM,FASTCODE,FASTMOVE请移步
http://blog.csdn.net/akof1314/article/details/6524767
- 由Python的super()函数想到的
python-super *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !im ...
- nodebb在阿里云主机部署过程
1.在centos上安装nodejswget http://nodejs.org/dist/v0.8.9/node-v0.8.9.tar.gztar zxvf node-v0.8.9.tar.gzcd ...
- IOS各类问题
1.The resource could not be loaded because the App Transport Security policy requires the use of a s ...
- ExtJs3常用控件操作实例
结合工作内容,不定期更新.这里面可能会讲到一些常用的组件的操作. json: { "total": 30, "data": [{ "funcAlign ...