洛谷P1094 纪念品分组

    xiaoxiao2025-02-04  40

    分享一道贪心解得的题目,思路不是很难,但要注意把条件设置得更巧妙一点。

    #include<iostream> #include<algorithm> using namespace std; int s[30001]; int main(){ int n,w; cin>>w>>n; for(int i=0;i<n;++i) cin>>s[i]; sort(s,s+n); int ans=n,a=0; for(int i=n-1;i>a;--i){ if(s[i]+s[a]<=w){ ans--; a++; } } cout<<ans; return 0; }
    最新回复(0)