3 条题解

  • 1
    @ 2025-7-22 19:46:33

    ……
    >﹏<
    只给了80分
    wuwuwuwuwuwuwuwwuwuwuwuwu(此处省略1万个wu)
    算了,给多少算多少,附上80分代码:
    听取WA声一片( ̄_ ̄|||)


    #include<bits/stdc++.h>
    using namespace std;
    int n,m,k;
    int a[20+10];
    int main(){
    	freopen("shelf.in","r",stdin);
    	freopen("shelf.out","w",stdout);	
        cin>>n>>k;
        for(int i=1; i<=n; i++)cin>>a[i],m+=a[i];
        sort(a+1,a+n+1);
        int f[m+1];
        f[0]=1;
        for(int i=1;i<=n;i++){ 
            for(int j=k;j>=0;j--){		
                if(f[j]==1){			
                    f[j+a[i]]=1;
                }
            }
        }
        for(int i=k;i<=m;i++){
            if(f[i]==1){	
                cout<<i-k<<endl;	
                return 0;
            }
        }
        return 0;
    }
    


    正努力AC!

    • 0
      @ 2025-7-23 9:44:45

      记录详情 - JMYSOJ (jmfes.com) 包AC的

      
      
      
      
      ```#include
      #include <bits/stdc++.h>
      using namespace std;
      int n, b;
      int a[30];
      int minn = 1e9;
      
      int per[15];
      //u表示处理到的数字下标,sum表示已经选取的数字和
      void dfs (int u, int sum){
      if(sum >= b && sum <= minn){
      minn = sum;
      return;
      }
      for(int i = u; i <= n; i ++){
      dfs(i + 1, sum + a[i]);
      }
      }
      
      int main(){
      freopen("shelf.in", "r", stdin);
      freopen("shelf.out", "w", stdout);
      cin >> n >> b;
      for(int i = 1; i <= n; i ++){
      cin >> a[i];
      }
      dfs(1, 0);
      cout << minn - b;
      return 0;
      }
      
      
      • 0
        @ 2025-7-23 9:37:58
        #include<bits/stdc++.h>
        #define int long long
        const int inf = 0x3f3f3f3f;
        const int N = 1e6 + 1;
        using namespace std;
        int hqt[N];
        int n , b;
        int zhou = inf;
        bool pei[N];
        void dfs(int l,int step , int sum){
        if(step > n){
        return;
        }
        if(sum >= b){
        zhou = min(zhou , sum - b);
        return;
        }
        for(int i = l ; i <= n ; i ++){
        if(pei[i]){
        continue;
        }
        pei[i] = true;
        dfs(i,step + 1 , sum + hqt[i]);
        pei[i] = false;
        }
        
        }
        signed main(){
        freopen("shelf.in" , "r" , stdin);
        freopen("shelf.out" , "w" , stdout);
        cin >> n >> b;
        for(int i = 1 ; i <= n ; i ++){
        cin >> hqt[i];
        }
        dfs(1 , 0 , 0);
        cout << zhou;
        return 0;
        }
        
        • @ 2025-7-23 9:42:15

          打差评的人都666

      • 1

      信息

      ID
      531
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      (无)
      递交数
      134
      已通过
      29
      上传者