3 条题解

  • 0
    @ 2025-3-29 18:53:43

    #include <bits/stdc++.h> using namespace std; long long a[11],w,ans = 0; void dfs(long long i,long long c){ if(i == 9) ans = max(ans,c); else for(long long k = 0,j = min((w - c) / i,a[i]) ; k < 9 && j >= 0 ; k++,j--) dfs(i+1,c+i*j); } int main(){ cin >> w; for(int i = 1 ; i < 9 ; i++) cin >> a[i]; dfs(1,0); cout << ans << endl; return 0; }

    • 0
      @ 2024-11-30 18:14:38

      下面题解第一个是错的,下面是对的

      • 0
        @ 2024-9-6 20:50:51

        正解:

        #include <bits/stdc++.h>
        using namespace std;
        #define int long long
        int n,m;
        int a[10];
        int f[10010];
        signed main()
        {
        	cin>>n;
        	for(int i=1;i<=8;i++)
        	{
        		cin>>a[i];
        		m+=a[i]*i;
        	}
        	if(m<=n)
        	{
        		cout<<m;
        		return 0;
        	}
        	if(n<=8&&a[n]!=0)
        	{
        		cout<<n;
        		return 0;
        	}
        	int k=n;
        	for(int i=8;i>=1;i--)
        		n%=i;
        	cout<<k-n;
        }
        
        • [ ] ---
        #include <bits/stdc++.h>
        using namespace std;
        long long a[11],w,ans = 0;
        void dfs(long long i,long long c){
        	if(i == 9) ans = max(ans,c);
        	else for(long long k = 0,j = min((w - c) / i,a[i]) ; k < 9 && j >= 0 ; k++,j--) dfs(i+1,c+i*j);
        }
        int main(){
        	cin >> w;
        	for(int i = 1 ; i < 9 ; i++) cin >> a[i];
        	dfs(1,0);
        	cout << ans << endl;
        	return 0;
        }
        
        • 1

        信息

        ID
        3185
        时间
        1000ms
        内存
        256MiB
        难度
        9
        标签
        (无)
        递交数
        137
        已通过
        11
        上传者