3 条题解

  • 0
    @ 2024-1-7 13:42:26

    从小到大排序,如果num>=a[i]-1,可以直接选择,否则贪心选择不能构成的最大金币数

    #include <iostream>
    #include <vector>
    #include <set>
    #include <algorithm>
    using namespace std;
    #define int long long
    const int mod=1e+7;
    signed main() {
        iostream::sync_with_stdio(false);
        cin.tie(0);
        cout.tie(0);
        int n,k;cin >>n>>k;
        vector<int> a(n);
        for(int i=0;i<n;i++) cin >> a[i];
        sort(a.begin(),a.end());
        int num=0,ans=0;
        for(int i=0;i<n;i++){
            while(num+1<a[i]){
                num+=num+1;
                ans++;
            }
            num+=a[i];
        }
        while(num<k) {
    			ans++;
    			num+=num+1;
    	}
        cout<<ans<<endl;
    
        return 0;
     }
    

    信息

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