zoukankan      html  css  js  c++  java
  • E

    题目链接:https://cn.vjudge.net/contest/272855#problem/E

    题目大意:给你n,a,b,k,f。n代表有n次旅行计划,然后a代表一次单程旅行的车费,b代表从下车的地方上车再到另一个地点的花费,k代表有特价券k张,f代表这样的特价券的价格,特价券的作用是从a-》b,这条路线上的任意次数任意方向上的花费都是免费的,让你求一个总共车程的最小花费。

    具体思路:看了一下别人的思路。首先,给你的路程计划是按照时间顺序来的,对于当前的状态,我们可以先记录一下上一次车程的终点,如果当前的车程的起点和上一次的车程的终点相等,那么这条路径的花费就加上b,否则就加上a。然后讲所有的路径的权值保留下来,然后排序,从最大的开始,如果当前的这条路线的总的花费大于f,那么就在原来不适用特价券的基础上减去省下的钱。

    AC代码:

    #include<bits/stdc++.h>
    #include<string>
    #include<cstring>
    #include<stdio.h>
    using namespace std;
    # define ll long long
    # define inf 0x3f3f3f3f
    const int maxn =100000+100;
    # define mod 1000000007
    # define ll long long
    map<string,int>vis;
    map<pair<int,int>,int>q;
    bool cmp(int t1,int t2)
    {
        return t1>t2;
    }
    int tt[maxn];
    int main()
    {
        int n,a,b,k,f;
        cin>>n>>a>>b>>k>>f;
        string t1,t2;
        int num=0;
        int sum=0;
        int t=inf;
        for(int i=1; i<=n; i++)
        {
            cin>>t1>>t2;
            if(vis[t1]==0)
            {
                vis[t1]=++num;
            }
            if(vis[t2]==0)
            {
                vis[t2]=++num;
            }
            if(vis[t1]==t)
                q[make_pair(min(vis[t1],vis[t2]),max(vis[t1],vis[t2]))]+=b,sum+=b;
            else
                q[make_pair(min(vis[t1],vis[t2]),max(vis[t1],vis[t2]))]+=a,sum+=a;
            t=vis[t2];
        }
        int ans=0;
        for(auto i=q.begin(); i!=q.end(); i++)
        {
            tt[++ans]=i->second;
        }
        sort(tt+1,tt+1+ans,cmp);
        for(int i=1; i<=k; i++)
        {
            if(tt[i]<f)break;
            sum-=tt[i]-f;
        }
        cout<<sum<<endl;
        return 0;
    }
    
  • 相关阅读:
    CF1051F The Shortest Statement 题解
    CF819B Mister B and PR Shifts 题解
    HDU3686 Traffic Real Time Query System 题解
    HDU 5969 最大的位或 题解
    P3295 萌萌哒 题解
    BZOJ1854 连续攻击游戏 题解
    使用Python编写的对拍程序
    CF796C Bank Hacking 题解
    BZOJ2200 道路与航线 题解
    USACO07NOV Cow Relays G 题解
  • 原文地址:https://www.cnblogs.com/letlifestop/p/10262795.html
Copyright © 2011-2022 走看看