昂贵的聘礼---poj1062(最短路)
题目链接:http://poj.org/problem?id=1062
题意很清楚;
可以虚拟一个起点0,由于存在等级关系,所以可以枚举等级,然后把各种关系建立边,然后计算0到1的距离即可,去最小值即可;
#include <iostream>
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <queue>
#include <stack>
#include <algorithm>
#include <map>
#include <string>
typedef long long LL;
#define INF 0x3f3f3f3f
#define met(a, b) memset(a, b, sizeof(a))
#define N 515 using namespace std; int n, m, G[N][N], dist[N], vis[N]; struct node
{
int p, l, x, T[N], V[N];
}a[N]; int Dij(int L, int R)
{
for(int i=; i<=n; i++)///重新建图;
{
for(int j=; j<=n; j++)
G[i][j] = INF;
G[i][i] = ;
dist[i] = INF;
}
for(int i=; i<=n; i++)
{
G[i][] = a[i].p;
for(int j=; j<=a[i].x; j++)
{
int v = a[i].T[j], w = a[i].V[j];
if(a[v].l >= L && a[v].l <= R)
G[i][v] = min(G[i][v], w);
}
} met(vis, );
dist[] = ;
for(int i=; i<=n; i++)
{
int Min = INF, Index = -;
for(int j=; j<=n; j++)
{
if(!vis[j] && Min > dist[j])
{
Min = dist[j];
Index = j;
}
}
if(Index == -)break;
vis[Index] = ;
for(int j=; j<=n; j++)
{
if(!vis[j] && dist[j] > dist[Index] + G[Index][j])
dist[j] = dist[Index] + G[Index][j];
}
}
return dist[];
} int main()
{
while(scanf("%d %d", &m, &n) != EOF)
{
for(int i=; i<=n; i++)
{
scanf("%d %d %d", &a[i].p, &a[i].l, &a[i].x);
for(int j=; j<=a[i].x; j++)
scanf("%d %d", &a[i].T[j], &a[i].V[j]);
} int ans = INF;
for(int i=a[].l-m; i<=a[].l; i++)///寻找等级区间内符合条件的;
{
ans = min(ans, Dij(i, i+m));
}
printf("%d\n", ans);
}
return ;
}
昂贵的聘礼---poj1062(最短路)的更多相关文章
- [poj1062]昂贵的聘礼_最短路_离散化
昂贵的聘礼 poj-1062 题目大意:原文链接?不是英文题,自己看 注释:$1\le N \le 100$. 想法:开始的想法有些过于简单,因为落下了一个条件:就是等级限制是一条路径上的任意两点而不 ...
- POJ-1062 昂贵的聘礼 (最短路)
POJ-1062 昂贵的聘礼:http://poj.org/problem?id=1062 题意: 有一个人要到1号点花费最少的钱,他可以花费一号点对应的价格,也可以先买下其他一些点,使得费用降低. ...
- POJ 1062 昂贵的聘礼 (最短路)
昂贵的聘礼 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/M Description 年轻的探险家来到了一个印第安部落里.在那里 ...
- 昂贵的聘礼--POJ1062
昂贵的聘礼 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 20000/10000K (Java/Other) Total Submiss ...
- POJ 1062 昂贵的聘礼(最短路中等题)
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 51879 Accepted: 15584 Descripti ...
- 【POJ 1062】昂贵的聘礼(最短路)
Dijkstra最短路,每次限制一个等级差,再更新答案. #include <cstdio> #define N 105 #define INF 1e9 int m, n; int p[N ...
- M - 昂贵的聘礼 - poj1062
Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...
- POJ 1062 昂贵的聘礼(最短路)题解
题意:中文题意不解释... 思路:交换物品使得费用最小,很明显的最短路,边的权值就是优惠的价格,可以直接用Dijkstra解决.但是题目中要求最短路路径中任意两个等级不能超过m,我们不能在连最短路的时 ...
- 【POJ】1062 昂贵的聘礼 (最短路)
题目 传送门:QWQ 分析 最短路显然,但不好搞地位等级..... 地位等级不好搞?那么就暴力.. 枚举我们允许的地位等级,跑最短路. 所以$ n^2logn $出100什么鬼啊,很有迷惑性啊 还有4 ...
随机推荐
- 【POJ】2653 Pick-up sticks(计算几何基础+暴力)
http://poj.org/problem?id=2653 我很好奇为什么这样$O(n^2)$的暴力能过.... 虽然说这是加了链表优化的,但是最坏不也是$O(n^2)$吗...(只能说数据太弱.. ...
- ejabberd 的框架
最近看源码,总结ejabberd的大致框架如下
- java 面向对象--------时间作业
编写Java应用程序.首先,定义一个时钟类——Clock,它包括三个int型 成员变量分别表示时.分.秒,一个构造方法用于对三个成员变量(时.分.秒) 进行初始化,还有一个成员方法show()用于显示 ...
- 4.用文本编辑器输入课堂上练习的Hello.java,并在JDK环境下编译和运行。请将程序编译、运行的结果截图,填入下框中。
一开始报错是因为在文本框了的:用的是中文下的,应该用英文下的;
- myeclipse10 将一个java工程合并到web工程
参考:zhaoshijie http://zhaoshijie.iteye.com/blog/ baidu: http://zhidao.baidu.com/link?url=WXr-EgI0OyUs ...
- [转] How to generate multiple outputs from single T4 template (T4 输出多个文件)
本文转自:http://www.olegsych.com/2008/03/how-to-generate-multiple-outputs-from-single-t4-template/ Updat ...
- 如何进行SCCM中客户端记录信息维护
SCCM 部署完毕之后,不久我们就会发现客户端代理状态,因为重装系统,非正常的退域,长时间不开机,导致客户端状态有不可用的,有过期的,重复的记录很多.当然我们可以手动的快速删除重复的记录,那么怎么能做 ...
- PHP 开发 APP 接口 学习笔记与总结 - Redis 缓存
Redis 可以定期将数据备份到磁盘中(持久化),同时不仅仅支持简单的key/value 类型的数据,同时还提供list,set,hash等数据结构的存储:Memcache 只是简单的key/valu ...
- Yii源码阅读笔记(十九)
View中渲染view视图文件的前置和后置方法,以及渲染动态内容的方法: /** * @return string|boolean the view file currently being rend ...
- DirectX基础学习系列5 融合技术
7.1融合方程 1概念 融合技术将当前光栅化像素的颜色与以前已光栅化并处于同一个位置的像素颜色进行合成,即将当前要进行光栅化的三角形单元与已写入后台的像素进行融合 2需要遵循的原则: (1)先绘制不需 ...