1 条题解

  • 0
    @ 2024-12-7 10:40:30
    #include<bits/stdc++.h>//5
    using namespace std;
    const int W[7]={0,1,2,3,5,10,20};
    vector<int> w;
    bool f[2005];
    int main()
    {
    	for(int i=1;i<=6;i++)
    	{
    		int a;
    		scanf("%d",&a);
    		int k=1;
    		while(a>=k)
    		{
    			w.push_back(W[i]*k);
    			a-=k;
    			k<<=1;
    		}
    		if(a) w.push_back(a*W[i]);
    	}
    	f[0]=1;
    	for(int i=0;i<(int)w.size();i++)
    		for(int j=2000;j>=w[i];j--)
    			f[j]|=f[j-w[i]];
    	int cnt=0;
    	for(int i=1;i<=2000;i++)
    		if(f[i]) cnt++;
    	cout<<"Total="<<cnt;
    	return 0;
    }
    
    • 1

    信息

    ID
    6387
    时间
    1000ms
    内存
    125MiB
    难度
    2
    标签
    递交数
    17
    已通过
    9
    上传者