3 条题解

  • 0
    @ 2026-9-5 17:02:08

    #include<bits/stdc++.h> using namespace std; int n,m; int ans=0; int a[10006],b[10006]; void work(int dep,int v,int p){ if(v>n)return; if(dep>m){ ans=max(ans,p); return; } work(dep+1,v+a[dep],p+a[dep]*b[dep]); work(dep+1,v,p); } int main(){ cin>>n>>m; for(int i=1;i<=m;i++){ cin>>a[i]>>b[i]; } work(1,0,0); cout<<ans<<endl; return 0; }

    信息

    ID
    635
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    80
    已通过
    65
    上传者