栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

市场调查(二分题)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

市场调查(二分题)

游戏公司开发了一套新的手游,在市场上做一个调查,依次去找n名顾客(按顺序),已知第i位顾客会评论的条件是已经至少有ai个评论或他对这个手游感兴趣,但是这n名顾客开始都不感兴趣。计算至少要说服几名顾客对这套手游感兴趣才能至少收到m个人的评论。

输入格式 输入文件名:erfen.in

第一行为正整数t(≤5),表示数据组数;每组数据中,第一行为正整数n和m(m≤n≤2*105),第二行为n个正整数ai(≤105)。

输出格式 输出文件名:erfen.out

对于每组数据,输出至少要说服的顾客数量。

输入/输出例子1

输入:

2

7 4

2 1 3 3 4 2 3

7 4

2 1 3 3 4 3 2

输出:

1

2

样例解释

样例1中,先说服1号顾客,则可以收到1,2,6,7四名顾客的评论;样例2中,则需要说服1,3号顾客,可以收到1,2,3,7四名顾客的评论。

#include
using namespace std;
int n,m;
int a[1000000];
int f(int x){
    int sum=0;
    for(int i=1;i<=n;i++){
        if(a[i]<=sum){
            sum++;
        }
        else if(x>0){
            x--;
            sum++;
        }
    }
    return sum;
}
int main(){
    int t;
    cin>>t;
    while(t--){
        cin>>n>>m;
        for(int i=1;i<=n;i++){
            cin>>a[i];
        }
        int l=0,r=n,mid=(l+r)/2;
    	while(l 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/690398.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号