2 条题解

  • 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
      标签
      (无)
      递交数
      134
      已通过
      8
      上传者