• 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;
    }

  • 相关阅读:
    C#重载操作符的那点事
    Winform最小化托盘
    C#多线程传参
    GridView事件大全
    测试2
    测试
    FindFileByContent
    JavaScriptCallCSharp js调用C#属性与方法
    GroupBy
    查询指定属性的文件
  • 原文地址:https://www.cnblogs.com/huangdao/p/7922255.html
Copyright © 2020-2023  润新知