//转移为最短路问题,枚举必经每一个不小于酋长等级的人的最短路
//Time:16Ms Memory:208K
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std; #define INF 0x3f3f3f3f
#define MAX 105 int lim, n;
int p[MAX][MAX], rk[MAX];
int d[MAX];
bool v[MAX]; void dijkstra(int x)
{
for (int i = 0; i <= n; i++)
d[i] = p[x][i];
for (int i = 0; i < n; i++)
{
int Min = INF, k;
for (int j = 0; j <= n; j++)
if (!v[j] && d[j] < Min)
Min = d[k = j];
v[k] = true;
if (k == 0) return; //到达不可优惠的地方
for (int j = 0; j <= n; j++)
if (!v[j] && d[j] > d[k] + p[k][j])
d[j] = d[k] + p[k][j];
}
} int main()
{
memset(p, INF, sizeof(p));
scanf("%d%d", &lim, &n);
for (int i = 1; i <= n; i++)
{
int rp, v;
scanf("%d%d%d", &p[i][0], &rk[i], &rp); //p[i][0]:原花费
while (rp--) {
scanf("%d", &v);
scanf("%d", &p[i][v]);
}
} int minp = INF;
for (int i = 1; i <= n; i++) //必经过i点时的最短路
{
memset(v, 0, sizeof(v));
if (rk[i] < rk[1] || rk[i] - rk[1] > lim) continue;
for (int j = 1; j <= n; j++) //使所有点都满足[rk[j] >= rk[i] -lim]
v[j] = rk[j] > rk[i] || rk[i] - rk[j] > lim;
dijkstra(1); //从1开始
minp = min(minp, d[0]);
}
printf("%d\n", minp); return 0;
}

ACM/ICPC 之 昂贵的聘礼-最短路解法(POJ1062)的更多相关文章

  1. POJ - 1062 昂贵的聘礼(最短路Dijkstra)

    昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000KB 64bit IO Format: %I64d & %I64u SubmitStatus Descr ...

  2. POJ1062昂贵的聘礼[最短路建模]

    昂贵的聘礼 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 45892   Accepted: 13614 Descripti ...

  3. POJ-1062 昂贵的聘礼( 最短路 )

    题目链接:http://poj.org/problem?id=1062 Description 年轻的探险家来到了一个印 第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用1000 ...

  4. POJ 1062 昂贵的聘礼 最短路+超级源点

    Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...

  5. ACM/ICPC 之 DFS+SPFA-贪心+最短路(POJ2679)

    //POJ2679 //DFS+SPFA+邻接表 //只能走每个点费用最小的边,相同则需保证距离最短 //求最小费用及最短距离 //Time:47Ms Memory:900K #include< ...

  6. POJ 1062 昂贵的聘礼 最短路 难度:0

    http://poj.org/problem?id=1062 #include <iostream> #include <cstring> #include <queue ...

  7. POJ1062 昂贵的聘礼(最短路)

    题目链接. 分析: 一开始以为简单的DFS,直接做,MLE了. 本体应该用最短路径(Dijkstra算法)做. 此题的关键在于等级限制的处理,采用枚举,即假设酋长等级为5,等级限制为2,那么需要枚举等 ...

  8. poj 1062 昂贵的聘礼 最短路 dijkstra

    #include <cstdio> #include <cmath> #include <cstring> #include <ctime> #incl ...

  9. M - 昂贵的聘礼 最短路 dij

    http://poj.org/problem?id=1062 这个题目有一点点特别,因为数据很小也可以用Floyd跑,但是个人比较钟爱dij. 这个dij是怎么走的呢,首先就是普通的建图,然后就是带上 ...

随机推荐

  1. c#之Redis队列在邮件提醒中的应用

    场景 有这样一个场景,一个邮件提醒的windows服务,获取所有开启邮件提醒的用户,循环获取这些用户的邮件,发送一条服务号消息.但问题来了,用户比较少的情况下,轮询一遍时间还能忍受,如果用户多了,那用 ...

  2. 手把手教你如何把java代码,打包成jar文件以及转换为exe可执行文件

    1.背景: 学习java时,教材中关于如题问题,只有一小节说明,而且要自己写麻烦的配置文件,最终结果却只能转换为jar文件.实在是心有不爽.此篇博客教你如何方便快捷地把java代码,打包成jar文件以 ...

  3. 解决前面有一篇文章中'flashplayer.so为什么要设置777权限的'问题 的 思考了

    列出某个目录下的所有内容? ls -A, -A等同于-a, 即是-all, 只是-A 不显示.和.. ll ls 某个目录, 如果它下面没有任何东西, 那么 就没有输出! 同时, ll某个目录, 不会 ...

  4. firefox的plugin-container.exe进程如何关闭?

    为什么要关闭container进程? 查看firefox所消耗的资源: ff本身: cpu一般是0-10%, 内存一般是400MB左右 plugin-container: cpu所占的比例很高, 可达 ...

  5. 如何使用UltraCompare对比两个文件夹内容差异

    http://jingyan.baidu.com/article/cb5d6105e13599005c2fe0f8.html  

  6. JQuery中的html(),text(),val()区别

    jQuery中.html()用为读取和修改元素的HTML标签,.text()用来读取或修改元素的纯文本内容,.val()用来读取或修改表单元素的value值. 1.HTML html():取得第一个匹 ...

  7. 快速切换IP的批处理!

    内容如下: @echo off color 1A Title [SMART专用 IP设置V1.0] cls echo. echo SMART专用 IP设置V1.0 %date%%time% echo. ...

  8. LYDSY模拟赛day9 2048

    /* 大模拟题,做的时候思路还是比较清晰的 */ #include<iostream> #include<cstdio> #include<string> #inc ...

  9. hash-5.ConcurrentHashMap

    http://www.cnblogs.com/dolphin0520/p/3932905.html有时间细看

  10. android service被系统回收的解决方法

    自己的app的service总是容易被系统回收,搜罗了一下,基本上的解决思路有以下几种: 1.把service写成系统服务,将永远不会被回收(未实践): 在Manifest.xml文件中设置persi ...