Greedy Gift Takers(二分,贪心)

编程入门 行业动态 更新时间:2024-10-12 16:22:38

Greedy Gift Takers(二分,<a href=https://www.elefans.com/category/jswz/34/1769875.html style=贪心)"/>

Greedy Gift Takers(二分,贪心)

[USACO17DEC] Greedy Gift Takers P - 洛谷

分析:

(鬼知道我看了多少人的题解)

由于可以操作无限次,必存在递增的情况

所以我们对于当前[1,mid)的奶牛按照c值排序之后

贪心的先放c中最小的奶牛

如果依然存在一头奶牛被放在mid之前

那么就无法使mid得到礼物


源代码:

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
ll c[100005];
ll cnt[100005];
ll n;
bool check(ll x)
{if(x==1)return 1;ll b[n+1];ll limit=n-x;for(ll i=1;i<x;i++)b[i]=c[i];sort(b+1,b+x,[](ll x,ll y){return x<y;});for(ll i=1;i<x;i++){if(b[i]>limit)return 0;limit++;}return 1;
}
void solve()
{cin>>n;for(ll i=1;i<=n;i++){cin>>c[i];}ll l=0,r=n+1;ll md=-1;while(l<=r){ll mid=l+(r-l)/2;if(check(mid)){md=mid;l=mid+1;}else r=mid-1;}cout<<n-md<<'\n';
}int main(){ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);ll t=1;while(t--)solve();return 0;}

更多推荐

Greedy Gift Takers(二分,贪心)

本文发布于:2024-02-06 15:19:30,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1749875.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:贪心   Greedy   Gift   Takers

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!