题意:就是一个点能够被另一个点取代,通过花费一定的金币,注意就是你和某个人交易了,如果这个人的等级和酋长的等级差的绝对值超过m,酋长就不会和你交易了;

思路:这里要注意到,我们最终的目的是找到一条最短路能够到达酋长,刚开始以为是从酋长开始,想了很久,就是建图的时候假设0点是我们初始点,找一条路,能够有0点到1点最短距离,

然后就是超过m限制的点,我们标记下,不用这个点就可以了;

代码:

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<set>
#include<map>
#include<queue>
#include<vector>
#define ll long long int
#define mod 1000000007
#define me(a,b) memset(a,b,sizeof(a))
const int inf=0x7fffffff;
using namespace std;
int price[105][105];
int lv[105];
int x[105];
int dist[105];
bool visit[105];
int u,v;
int m,n;
void input()
{
me(dist,inf);
me(price,0);
me(lv,0);
me(x,0);
me(visit,0);
cin>>m>>n;
for(int i=1;i<=n;i++)
{
cin>>price[0][i]>>lv[i]>>x[i];
for(int j=1;j<=x[i];j++)
{
cin>>u>>v;
price[u][i]=v;
}
}
}
int dij()
{
int node;
int sd;
for(int i=1;i<=n;i++)
dist[i]=price[0][i];
for(int i=1;i<=n;i++)
{
node=0;sd=inf;
for(int j=1;j<=n;j++)
{
if(!visit[j]&&sd>dist[j])
{
sd=dist[j];
node=j;
}
}
if(node==0)
break;
visit[node]=true;
for(int j=1;j<=n;j++)
{
if(!visit[j]&&price[node][j]>0&&dist[j]>dist[node]+price[node][j])
dist[j]=dist[node]+price[node][j];
}
}
return dist[1];
}
int main()
{
int temp;
int lowprice=inf;
int maxlv;
input();
for(int i=1;i<=n;i++)
{
maxlv=lv[i];
for(int j=1;j<=n;j++)
{
if(lv[j]>maxlv||maxlv-lv[j]>m)
visit[j]=true;
else
visit[j]=false;
}
temp=dij();
lowprice=min(lowprice,temp);
}
cout<<lowprice<<endl;
return 0;
}

poj1062昂贵的聘礼(枚举+最短路)的更多相关文章

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

    POJ-1062 昂贵的聘礼:http://poj.org/problem?id=1062 题意: 有一个人要到1号点花费最少的钱,他可以花费一号点对应的价格,也可以先买下其他一些点,使得费用降低. ...

  2. [poj1062]昂贵的聘礼_最短路_离散化

    昂贵的聘礼 poj-1062 题目大意:原文链接?不是英文题,自己看 注释:$1\le N \le 100$. 想法:开始的想法有些过于简单,因为落下了一个条件:就是等级限制是一条路径上的任意两点而不 ...

  3. POJ1062:昂贵的聘礼(枚举+迪杰斯特拉)

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

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

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

  5. POJ1062昂贵的聘礼(经典) 枚举区间 +【Dijkstra】

    <题目链接>                   昂贵的聘礼 Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用1000 ...

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

    昂贵的聘礼 题目链接: http://acm.hust.edu.cn/vjudge/contest/122685#problem/M Description 年轻的探险家来到了一个印第安部落里.在那里 ...

  7. POJ1062昂贵的聘礼(dijkstra)

    昂贵的聘礼 题目大意是说有N个物品,每个物品都有自己的价格,但同时某些物品也可以由其他的(可能不止一个)替代品,这些替代品的价格比较“优惠”,问怎么样选取可以让你的花费最少来购买到物品1 由于有N个物 ...

  8. POJ 1062 昂贵的聘礼(最短路中等题)

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

  9. POJ1062 昂贵的聘礼 【DFS】

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

随机推荐

  1. ansible详解

    Ansible默认通过 SSH 协议管理机器. 安装Ansible之后不需要启动或运行一个后台进程,或是添加一个数据库.只要在一台电脑(可以是一台笔记本)上安装好,就可以通过这台电脑管理一组远程的机器 ...

  2. C++STL二维vector指定位置排序

    自己一直用vector 二维的存储变量 有时候需要进行排序 在此 为记录一下方法 废话少说直接上代码 #include <QCoreApplication> #include <io ...

  3. TerraGate软件安装后,不能启动的解决办法

    在服务端安装Skyline的TerraGate软件的时候,大家可能会遇到过这样的问题,“TerraGate软件安装后,不能启动”,很多时候,这个问题是因为TerraGate设 置的端口号已经被占用造成 ...

  4. 内核里面writel(readl)是如何实现的

    writel和readl,这两个个函数实现在操作系统层,有内存保护的情况下,往一个寄存器或者内存地址写一个数据.先说一下writel:   在arch/alpha/kernel/io.c中有 void ...

  5. IDC Digital Transition Annual Festival(2018.10.19)

    时间:2018.10.19地点:北京万达文化酒店

  6. 【转】Oracle中的decode在mysql中的等价实现

    以前用的Oracle,里面的Decode函数非常好用,那MySql实现同样的功能用什么呢?——MySql使用if的语法来支持. 格式:IF(expr1,expr2,expr3)如果expr1是TRUE ...

  7. 使用IE浏览提示:该页面无法显示

    问题描述: 我们有一个外部招聘的网站,DBA反馈新版上线过后首页集成的登录部分页面无法打开,一直显示“该页面无法显示”! 问题排查: 1.因为我本身也不是负责这一块的业务,刚开始以为是网站本身程序的问 ...

  8. OpenTracing:开放式分布式追踪规范

    前言 想实现一个简单的追踪系统似乎是容易的,需要必要的调用链id,时间戳等:想实现一款易用不侵入代码的追踪系统就很麻烦了,需要接触CLR和IL相关知识:即使你费劲心力做出了那些,如果性能不够好,也没有 ...

  9. ireportdesigner下载页面

    iReport主页:http://community.jaspersoft.com/project/ireport-designer iReport下载地址:http://sourceforge.ne ...

  10. 基于Nginx+Keepalived的LB服务监控(邮件报警)

    IDC两台机器上部署了Nginx+Keepalived主从模式的LB代理负载层,现在需要对LB进行每日巡检和服务监控,利用SendEmail邮件监控. 0)SendEmail部署 参考:http:// ...