其实感觉有点贪心的味道,先升序排序,,然后我们先凑最小的,而凑成的条件就是这个最小的数前面的数的数量应该大于等于这个最小的数,然后我模拟上述过程就行了。 AC代码:
#include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; const int maxn=1e6+5; int a[maxn]; int main(){ ios::sync_with_stdio(false); int t; cin>>t; while(t--){ int n; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; sort(a+1,a+1+n); int ans=0,cnt=0; for(int i=1;i<=n;i++){ if(a[i]<=i-cnt){ cnt+=a[i]; ans++; } } cout<<ans<<endl; } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算