首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计数器和线路问题。有人能解释一下解决这个问题的方法吗?

计数器和线路问题。有人能解释一下解决这个问题的方法吗?
EN

Stack Overflow用户
提问于 2022-04-30 18:51:13
回答 1查看 204关注 0票数 0

问题:问题陈述:要进入东藤游乐园,有M个柜台。总共有N个人想进入游乐园,每个人都会在一个柜台前排队。任何柜台职员都会生气,如果在他面前排队的人数至少比邻座柜台前排队的人数多2人。K柜台的工人工作最快.找出在K柜台前排队的人的最大数量,这样每个柜台至少有一个人,没有柜台工作人员生气。输入输入包含三个整数M、N和K输出:打印可以在Kth计数器前排队的最大人数,以便每个计数器至少有一个人,没有柜台工作人员生气。测试用例:样本输入:3 6 1

样本输出:3

说明:最佳安排是321.

EN

回答 1

Stack Overflow用户

发布于 2022-07-26 11:23:19

这里是二进制搜索解决方案-我尝试过

代码语言:javascript
复制
ll get(ll m, ll k){
    ll d = k;
    if (k > m) d = m;
     k -= d;
    
    return k + d * (2 * m - d + 1) / 2;
}



signed main(){
    ll n, p, k; cin >> n >> p >> k;
    ll l = 1, r = p+1;
 
    while(l + 1 < r){
        ll m = (l + r) / 2;
         cout<<get(m, k) <<" "<<get(m, n - k + 1)<<" "<<m<<endl;
        if ( ull(get(m, k)) + get(m, n - k + 1) - m > p)
            r = m;
        else l = m;
    }
 
    cout << l << endl;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72071299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档