zoukankan      html  css  js  c++  java
  • 洛咕 P3961 [TJOI2013]黄金矿工

    甚至都不是树形背包= =

    把每条线抠出来,这一条线就是个链的依赖关系,随便背包一下

    // luogu-judger-enable-o2
    #include<bits/stdc++.h>
    #define il inline
    #define vd void
    typedef long long ll;
    il int gi(){
        int x=0,f=1;
        char ch=getchar();
        while(!isdigit(ch)){
            if(ch=='-')f=-1;
            ch=getchar();
        }
        while(isdigit(ch))x=x*10+ch-'0',ch=getchar();
        return x*f;
    }
    struct yyb{int x,y,t,v;}s[210];
    il bool operator <(const yyb&a,const yyb&b){return a.y<b.y;}
    std::map<std::pair<int,int>,int>M;
    int cnt;
    std::vector<yyb>S[210];
    int f[40010];
    int main(){
    #ifndef ONLINE_JUDGE
        freopen("3961.in","r",stdin);
        freopen("3961.out","w",stdout);
    #endif
        int n=gi(),t=gi();
        for(int i=1;i<=n;++i){
            s[i].x=gi(),s[i].y=gi(),s[i].t=gi(),s[i].v=gi();
            int g=std::__gcd(s[i].x,s[i].y);
            std::pair<int,int>pr=std::make_pair(s[i].x/g,s[i].y/g);
            if(M.find(pr)==M.end())M[pr]=++cnt;
            S[M[pr]].push_back(s[i]);
        }
        for(int i=1;i<=cnt;++i){
            std::sort(S[i].begin(),S[i].end());
            for(int p=t;p;--p){
                int sumt=0,sumv=0;
                for(int j=0;j<S[i].size();++j){
                    sumt+=S[i][j].t,sumv+=S[i][j].v;
                    if(sumt>p)break;
                    f[p]=std::max(f[p],f[p-sumt]+sumv);
                }
            }
        }
        printf("%d
    ",f[t]);
        return 0;
    }
    
  • 相关阅读:
    Css_加载样式
    Mvc4_@RenderBody()和@RenderSection()
    C#_观察者模式
    Mvc4_MvcPager 概述
    Mvc4_Area的应用
    Nginx 服务器性能参数设置
    Nginx变量的实现机制
    天下无雾
    Nginx Http框架的理解
    【转】websocket协议规范
  • 原文地址:https://www.cnblogs.com/xzz_233/p/9827341.html
Copyright © 2011-2022 走看看