//转移为最短路问题,枚举必经每一个不小于酋长等级的人的最短路
//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. Jenkins入门总结

    Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作 在网上貌似没有找到Jenkins的中文的太多的文 ...

  2. va_list深究

    va_list深究 2011-04-21 21:06:11|  分类: C/C++|字号 订阅     VA函数(variable argument function),参数个数可变函数,又称可变参数 ...

  3. linux的bash 终端操作快捷键

    bash中的快捷键操作: 分为两大类, 一是移动, 另一个是删除 一. 移动 1. 按字符移动: ctrl+f, ctrl+b 3. 按行移动: ctrl+a, ctrl+e 二. 删除: 1. 按字 ...

  4. yaf扩展

  5. Docker容器基础知识学习

    Docker作为操作系统层面的轻量级的虚拟化技术,凭借简易的使用.快速的部署以及灵活敏捷的集成等优势,迅速发展目前最为火热的技术. 1.云计算服务是一种资源管理的资源服务,该模式可以实现随时随地.便捷 ...

  6. ASP.NET Web数据控件

    ASP.NET Web数据控件 1.数据控件简介 这包括数据源控件和格式设置控件,前者使您可以使用 Web 控件访问数据库中的数据,后者使您可以显示和操作ASP.NET 网页上的数据.  2.数据控件 ...

  7. java 在接口里函数不能重载?

    项目里使用hession远程调用serviceRemote接口,而serviceRemote接口里有两个save方法,参数分别是CpCredential对象和List,但运行发现会报莫名其妙的错. 后 ...

  8. wordpress如何批量关闭旧日志留言功能

    于一些wordpress技术博客或者其他wordpress博客来说,一些旧日志的内容可能已经过时了,但是一些读者,还是对一些问题“纠缠不清”或者“喋喋不休”,怎么办,把留言关了就好了: UPDATE ...

  9. WebStorm设置编辑器中的字体大小

    启动webStorm之后,点击“FIle"菜单,选择其下的”Settings" 2.在左侧的菜单中选择“Editor/Colors & Fonts/Font 在右侧Sche ...

  10. Linux上安装五笔

    1.安装# yum install ibus-table-chinese-wubi-jidian 2.设置ibus平台,添加五笔输入法# ibus-setup 3.#gsettings set org ...