标签:二分 Gym 101755K mid check Reviews 评论 ans ll
题目链接:
K - Video Reviews
题目大意:
一家公司想让个人给他们的产品评论,所以依次去找这个人,第i个人会评论当且仅当已经有个人评论或他确实对这个产品感兴趣,但是这个人都不对这个产品感兴趣,问这个公司至少要说服几个人对该产品该兴趣才能至少收到个人的评论.
具体思路:二分最小值,当当前的人发现满足的人数不够的时候,就通过二分的最小值给补上就可以了。
AC代码:
1 #include<bits/stdc++.h> 2 using namespace std; 3 # define ll long long 4 # define inf 0x3f3f3f3f 5 const int maxn = 2e5+100; 6 ll a[maxn]; 7 ll n,m; 8 bool check(ll k) 9 { 10 ll ans=0; 11 for(ll i=1; i<=n; i++) 12 { 13 if(a[i]<=ans) 14 ans++; 15 else if(k) 16 { 17 ans++; 18 k--; 19 }` 20 if(ans==m) 21 return true; 22 } 23 return false; 24 } 25 int main() 26 { 27 scanf("%lld %lld",&n,&m); 28 for(ll i=1; i<=n; i++) 29 { 30 scanf("%lld",&a[i]); 31 } 32 //sort(a+1,a+n+1); 33 ll ans=0; 34 ll l=0,r=9e18; 35 //cout<<check(1)<<endl; 36 while(l<=r) 37 { 38 ll mid=(l+r)>>1ll; 39 if(check(mid)) 40 { 41 ans=mid; 42 r=mid-1; 43 } 44 else 45 l=mid+1; 46 } 47 printf("%lld\n",ans); 48 return 0; 49 }
标签:二分,Gym,101755K,mid,check,Reviews,评论,ans,ll 来源: https://www.cnblogs.com/letlifestop/p/10662485.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。