题意:

有一个谷仓容量为\(n\),谷仓第一天是满的,然后每天都发生这两件事:

  1. 往谷仓中放\(m\)个谷子,多出来的忽略掉
  2. 第\(i\)天来\(i\)只麻雀,吃掉\(i\)个谷子

求多少天后谷仓会空

分析:

分类讨论:

1. \(n \leq m\)

每天都会把谷仓放满,所以第\(n\)后会变空

2. \(n > m\)

前\(m\)天后谷仓还一直都是满的
第\(m+1\)天后还剩\(n-m-1\),第\(m+2\)天后还剩\(n-m-1-2\)
第\(m+i\)天后还剩\(n-m-\frac{i(i+1)}{2}\)
所以可以二分求出答案

注意到比较\(n-m>\frac{i(i+1)}{2}\)时,中间计算结果会溢出
所以可以通过除法来比较大小,令\(t=\frac{2(n-m)}{i(i+1)}\)

  • \(t>1\),有\(n-m>\frac{i(i+1)}{2}\)
  • \(t=0\),有\(n-m<\frac{i(i+1)}{2}\)
  • \(t=1\),这时\(i(i+1)\)的值不会太大,可以通过直接计算比较大小
#include <cstdio>
#include <cstring>
using namespace std;typedef long long LL;LL n, m;bool ok(LL x) {x -= m;LL t = n - m;t <<= 1;t /= x;t /= x + 1;if(t > 1) return false;if(!t) return true;return n - m == x * (x + 1) / 2;
}int main()
{scanf("%lld%lld", &n, &m);if(n <= m) {printf("%lld\n", n);return 0;}LL L = m + 1, R = n;while(L < R) {LL M = (L + R) / 2;if(ok(M)) R = M;else L = M + 1;}printf("%lld\n", L);return 0;
}

转载于:https://www.cnblogs.com/AOQNRMGYXLMV/p/6569234.html

CodeForces 785C Anton and Fairy Tale 二分相关推荐

  1. Anton and Fairy Tale CodeForces - 785C(二分+思维)

    Anton likes to listen to fairy tales, especially when Danik, Anton's best friend, tells them. Right ...

  2. Anton and Fairy Tale

    Anton likes to listen to fairy tales, especially when Danik, Anton's best friend, tells them. Right ...

  3. Anton and Fairy Tale(二分)

    去过很多西方国家的Hxx1喜欢给我们讲他的旅行见闻 有一天他讲了他与外国人谈笑风生时听到的故事 "很久很久以前,有一位国王突发奇想,想建一座大谷仓. 将所有的谷子都存在这个谷仓里.工匠们干了 ...

  4. C. Anton and Fairy Tale

    链接 [https://codeforces.com/contest/785/problem/C] 题意 初始时有n,第1天先加m开始吃1,但总的不能超过n,第i天先加m开始吃i(如果不够或刚好就吃完 ...

  5. codeforce Anton and Fairy Tale

    题意:有一个谷仓,它的容量为N.第i天先会增加M(不会超出它的容量),然后减少i, 问第几天后谷仓为空,且第一天谷仓是满的. 第i天 增加 减少 1 0 1 2 1 2 3 2 3 -- -- -- ...

  6. Fairy tale(BFS + 大模拟)

    一.题目链接: Fairy tale 二.题目大意: 给你一个N × N 的地图,图上的每个点有四种方向(E W S N),代表着移动方向. 在 t = 0 时,saya 在 (1, 1),treas ...

  7. 动漫推荐之 Fairy Tale 妖精的尾巴

    永远的Fairy Tale!

  8. Fairy Tale (《传奇》英文版)

    这首<Fairy Tale>的旋律应该是中国歌迷再熟悉不过的了,这是迈克学摇滚在2010年的中国巡演中给大家带来的惊喜.填上英文歌词后的<传奇>会有怎样的意境呢?我们一起来静静 ...

  9. Fairy Tale - 英文版《传奇》迈克学摇滚

    向大家推荐一首好听的歌,可以听听试试看 [url]http://www.tudou.com/programs/view/sxJ8uTsEp8A/[/url] 没有MV,只有音乐 Fairy Tale/ ...

最新文章

  1. 研究生失联19天,父母焦急求助!最后竟然是在写博士研究计划......
  2. Spring MVC漏洞学习总结
  3. 统计自然语言处理基础(一)
  4. 一文读懂 AVL 树
  5. python的datetime函数_Python连载8-datetime包函数介绍
  6. 判断平台是windows还是linux,用这个方法就行了
  7. iOS7应用开发5、视图控制器View Controller及其生命周期
  8. 双显卡笔记本安装linux,双显卡笔记本安装 Ubuntu 18.04 攻略
  9. python安装包国内镜像,pip使用国内镜像
  10. 华为BFD的配置规范
  11. 计算机毕业设计java+jsp旅游网站(源码+系统+mysql数据库+Lw文档)
  12. CImageList-CBitmap-Usage
  13. 数据库 --- 约束
  14. POI生成workBook时报java.long.ArrayIndexOutOfBoundsEXception:-32768
  15. 1.软件工程—数据流图
  16. Flyway 报错:Detected applied migration not resolved locally:2和执行脚本错误
  17. lottie轻松实现复杂动画(抽奖举例)
  18. 网络游戏网络同步方案的选择
  19. 已解决(Python安装报错)Visit python.org to download an earlier version of Python.
  20. 【面经】三七互娱Java游戏研发实习(一面)

热门文章

  1. Xadmin 常用插件
  2. WM6.0系统WIFI与笔记本点对点互联详细解析
  3. ASP.NET WebForm Best Practice 之PostBack
  4. LeetCode数据库 178. 分数排名
  5. buck变换器设计matlab_在数字控制系统中实现LLC变换器的电流模式控制的思考
  6. Ubuntu Linux服务器安装JDK8
  7. linux下socket调试,linux 下的socket 调试工具 netcat 使用
  8. oracle查询时定义临时的变量,oracle学习笔记之临时变量的使用
  9. python词云分析难吗_Python 词云分析周杰伦《晴天》
  10. java系列8:private修饰的成员变量怎么传参