CF28D Don't fear, DravDe is kind

CF28D Don't fear, DravDe is kind


傻逼dp。

显然\(c+l+r\)相同的才能相互转移,然后\(i\)会从满足\(l_j+c_j=l_i\)\(f\)最大的\(j\)转移过来。

#include
#define il inline
#define vd void
#define int long long
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;
}
std::mapyyb;
const int maxn=200001;
int w[maxn],p[maxn],l[maxn],r[maxn];
std::vectorS[maxn];
int ans[maxn],Ans=-1,t[1000100],tt[1000100],lst[maxn],f[maxn];
main(){
    int n=gi();
    for(int i=1;i<=n;++i){
        w[i]=gi(),p[i]=gi(),l[i]=gi(),r[i]=gi();
        int s=p[i]+l[i]+r[i];
        if(yyb[s]==0)yyb[s]=i;
        S[yyb[s]].push_back(i);
    }
    for(int i=1;i<=n;++i){
        if(!S[i].size())continue;
        tt[0]=i,t[0]=-1;
        int mx=-1;
        for(int j=0;j

转载于:https://www.cnblogs.com/xzz_233/p/9762721.html

你可能感兴趣的:(CF28D Don't fear, DravDe is kind)