AC2,9,11 其他WA 开O2
查看原帖
AC2,9,11 其他WA 开O2
305895
Take_A_Single_6楼主2021/9/27 23:23
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,c,v[1000000],w[1000000],x,y,z,cnt=0,cc,dp[1000000];
signed main()
{
    cin>>n>>m>>c;
    memset(dp,0,sizeof dp);
    for(int i=0;i<n;i++)
    {
        cin>>x>>y>>z;
        for(int j=1;z-j>=0;j*=2)z-=j,v[cnt]=j*x,w[cnt]=j*y,cnt++;
        if(z)v[cnt]=z*x,w[cnt]=z*y,cnt++;
    }
    for(int i=0;i<m;i++)
    {
        cin>>x>>y>>z,cc=c;
        v[cnt]=0,w[cnt]=z,cnt++;
        for(int j=1;cc-j>=0;j*=2)cc-=j,v[cnt]=j,w[cnt]=j*j*x+j*y+z,cnt++;
        if(cc)v[cnt]=cc,w[cnt]=cc*cc*x+cc*y+z,cnt++;
    }
    for(int i=0;i<cnt;i++)
        for(int j=c;j>=v[i];j--)
        	dp[j]=max(dp[j],dp[j-v[i]]+w[i]);
    cout<<dp[c];
    return 0;
}
2021/9/27 23:23
加载中...