题目链接:http://codeforces.com/problemset/problem/760/B

题目大意:有n个人,共m个东西,每个人至少分得1个,相邻两人的物品个数之<=1,问第k个人最多能分多少个。

分析:这道题嘛,求约束条件的最大值,我们可以想到二分,设第K个人分x个,那么与他距离为1的人分x-1个,距离为2的人分x-2个。注意10^9=1e9不是1e8,这样WA了几发!!

code:

#include<cstdio>
#define min(a,b) (a<b?a:b)
typedef long long LL;
const LL MAXN=1e9+5;
LL n,m,k;
bool condition(LL x){
    LL a=min(x,k);//两个等差数列长度
    LL b=min(x,n-k+1);
    LL sum=a*(x+x-(a-1))/2+b*(x+x-(b-1))/2-x;
    return sum<=m;
}
int main(void){
    scanf("%I64d%I64d%I64d",&n,&m,&k);
    m=m-n;//先每人分一个
    LL  lo=-1,hi=m+1;
    while(hi-lo>1){
        LL mid=(hi+lo)/2;
        if(condition(mid))lo=mid;
        else hi=mid;
    }
    printf("%I64d\n",lo+1);
}

codeforce 760 B Frodo and pillows 二分搜索相关推荐

  1. 【CodeForces - 760B 】Frodo and pillows (二分题意,注意细节)

    题干: n hobbits are planning to spend the night at Frodo's house. Frodo has n beds standing in a row a ...

  2. Frodo and pillows CodeForces - 760B 二分 注意l和r的选择

    以后写l和r的初始值的时候,在不影响合理性的前提下,尽量写大一点 比如下面这个代码,如果r不加以或者l==0就不行 #include <iostream> #include <cst ...

  3. Codeforces Roud#393

    B. Frodo and pillows time limit per test 1 second memory limit per test 256 megabytes input standard ...

  4. hdu2236 无题II 最大匹配 + 二分搜索

    中文题目,题意大家都明白. 看到"不同的行和列"就觉得要用二分匹配来做.要求最大值与最小值的差值最小,是通过枚举边的下限和上限来完成. 枚举过程是这样的,在输入的过程可以记录下边权 ...

  5. 二分搜索 POJ 2456 Aggressive cows

    题目传送门 1 /* 2 二分搜索:搜索安排最近牛的距离不小于d 3 */ 4 #include <cstdio> 5 #include <algorithm> 6 #incl ...

  6. 算法基础知识科普:8大搜索算法之二分搜索

    昨天介绍了对无序搜素表的顺序搜索方法,今天介绍对有序搜索表的二分搜索方法,"二分"在算法设计中是非常常用的一种思想,除了处理如下普通的搜索外,还用于搜索方程的解等工程领域.但二分法 ...

  7. 二分搜索 2015百度之星初赛1 HDOJ 5248 序列变换

    题目传送门 1 /* 2 二分搜索:在0-1e6的范围找到最小的max (ai - bi),也就是使得p + 1 <= a[i] + c or a[i] - c 3 比赛时以为是贪心,榨干智商也 ...

  8. POJ1064(二分搜索)解题报告

    原题链接:POJ1064 题意简述:有N根绳子,它们长度分别为Li.如果从他们中切割出K条长度相同的绳子的话,这K条绳子每条最长能有多长?答案保留到小数点后俩位. 解题思路:用二分搜索方法来判断.首先 ...

  9. java 二分搜索获得大于目标数的第一位_遇到「最值问题」还在无脑动态规划?二分法考虑一下呗

    目录 前言 二分法基础及变种结构 小试牛刀 打怪升级 出师试炼 前言 一般来说,遇到「最值问题」通用的方法都是动态规划,而有一类「最值问题」可以用其他方法更加巧妙.简单方便的解决,这类问题的常见问法是 ...

  10. 二分搜索 POJ 3273 Monthly Expense

    题目传送门 1 /* 2 题意:分成m个集合,使最大的集合值(求和)最小 3 二分搜索:二分集合大小,判断能否有m个集合. 4 */ 5 #include <cstdio> 6 #incl ...

最新文章

  1. 金融行业数据管理将何去何从?
  2. 06-jvm-查询命令-01
  3. 如何查看一个linux用户的口令保留策略
  4. java邮箱找回密码_Spring实现简单的邮箱找回密码功能
  5. spring boot+mybatis-plus+SQL server调用有返回值的存储过程
  6. pandas合并concatmerge和plot画图
  7. android获取3g或wifi流量信息,Android代碼----android獲取3G或wifi流量信息
  8. 通过系统表获取SQL,Access,Oracle数据库的元数据信息
  9. Flink 端到端一致性
  10. gophp解释器_go语言环境搭建、基本使用
  11. dell服务器错误代码
  12. 排队论的计算机模拟,8.2 排队论模型(二)-----计算机模拟.pdf
  13. ubuntu20.04安装搜狗输入法
  14. python爬虫qq好友信息_qq好友空间说说爬虫
  15. c语言无符号数最大值和最小值,c语言 int最大值是多少?
  16. 酒店管理系统java代码_基于Spring开发的Java酒店管理系统 源码下载
  17. adobe illustrator的格式刷
  18. win10安装Visual Studio 2019失败
  19. 21 个人所得税计算
  20. 2021高考俄语成绩查询,2021年俄语专业大学排名及分数线【统计表】

热门文章

  1. 用计算机播放cd,电脑上怎么放光盘_播放CD的方法步骤
  2. 细说六度分隔与相关数学模型
  3. 树莓派 Raspberry Pi Pico windows7 串口驱动
  4. DIY无人机组装与飞控参数调试记录(DJI NAZA-LITE)
  5. idea运行maven无法下载jar并报错work offline
  6. 如何查看linux的日志
  7. LaTeX公式编辑器+mathtype6.9b
  8. jQuery 瀑布流插件
  9. 【转】腾讯云PCDN:从P2P到万物互联服务框架
  10. Linux 系 统 目 录 详 解