zoukankan      html  css  js  c++  java
  • poj1062昂贵的聘礼(枚举+最短路)

    题意:就是一个点能够被另一个点取代,通过花费一定的金币,注意就是你和某个人交易了,如果这个人的等级和酋长的等级差的绝对值超过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;
    }

  • 相关阅读:
    legend3---阿里云如何多个域名指向同一个网站
    黑马lavarel教程---1、lavarel目录结构
    modern php笔记---2.1、特性(命名空间、特性、性状)
    modern php笔记---php (性状)
    modern php笔记---1、新时代的php
    深入浅出mysql笔记---1、mysql下载安装
    深入浅出mysql笔记---0、序
    影视感悟专题---2、《大染坊》
    尚硅谷Docker---6-10、docker的安装
    legend3---Homestead常用操作代码
  • 原文地址:https://www.cnblogs.com/huangdao/p/7922255.html
Copyright © 2011-2022 走看看