zoukankan      html  css  js  c++  java
  • 洛谷1315 观光公交

    洛谷1315 观光公交


    原题链接


    交题记录

    第一次10 傻了
    第二次AC


    题解

    思路就是基本的大%你大模拟+一点dp,具体看代码
    d题目里的
    shang这个点上车人中最大的T
    xia这个点下车人数
    (reach[i])表示到达i的时间,每次更新,
    (reach[i]=max(reach[i-1],shang[i-1])+d[i-1])
    f[i]这条边--的收益


    Code

    // It is made by XZZ
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    #define rep(a,b,c) for(rg ll a=b;a<=c;a++)
    #define drep(a,b,c) for(rg ll a=b;a>=c;a--)
    #define erep(a,b) for(rg ll a=fir[b];a;a=nxt[a])
    #define il inline
    #define rg register
    #define vd void
    typedef long long ll;
    il int gi(){
        rg int x=0,f=1;rg char ch=getchar();
        while(ch<'0'||ch>'9')f=ch=='-'?-1:f,ch=getchar();
        while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
        return x*f;
    }
    const int maxn=1010,maxm=10010;
    int n,m,k,d[maxn],shang[maxn],xia[maxn],reach[maxn],f[maxn];
    int main(){
        n=gi(),m=gi(),k=gi();
        rep(i,1,n-1)d[i]=gi();
        int t,a,b,ans=0;
        rep(i,1,m){
            t=gi(),a=gi(),b=gi();
            ++xia[b],shang[a]=max(shang[a],t);
            ans-=t;
        }
        rep(i,2,n)reach[i]=max(shang[i-1],reach[i-1])+d[i-1];
        while(k--){
            drep(i,n,2)
                if(d[i-1]==0)f[i-1]=0;
                else{
                    f[i-1]=xia[i];
                    if(reach[i]>shang[i])f[i-1]+=f[i];
                }
            int res=0;
            rep(i,1,n-1)if(f[i]>f[res])res=i;
            if(res==-1)break;
            --d[res];
            rep(i,res+1,n)reach[i]=max(shang[i-1],reach[i-1])+d[i-1];
        }
        rep(i,1,n)ans+=xia[i]*reach[i];
        printf("%d
    ",ans);
        return 0;
    }
    
    博主是蒟蒻,有问题请指出,谢谢!
    本博客中博文均为原创,未经博主允许请勿随意转载,谢谢。
  • 相关阅读:
    HBA登录验证
    html转pdf
    html转pdf
    html转word
    python生成html
    python生成pdf
    Word另存为不同的格式
    WORD转HTML-python第三方包Mammoth(官方文档翻译)
    深入浅谈,CPU设计原理
    CPU,寄存器,缓存,RAM,ROM的作用和他们之间的联系
  • 原文地址:https://www.cnblogs.com/xzz_233/p/7442173.html
Copyright © 2011-2022 走看看