CodeForces 785C Anton and Fairy Tale 二分
题意:
有一个谷仓容量为\(n\),谷仓第一天是满的,然后每天都发生这两件事:
- 往谷仓中放\(m\)个谷子,多出来的忽略掉
- 第\(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 二分相关推荐
- Anton and Fairy Tale CodeForces - 785C(二分+思维)
Anton likes to listen to fairy tales, especially when Danik, Anton's best friend, tells them. Right ...
- Anton and Fairy Tale
Anton likes to listen to fairy tales, especially when Danik, Anton's best friend, tells them. Right ...
- Anton and Fairy Tale(二分)
去过很多西方国家的Hxx1喜欢给我们讲他的旅行见闻 有一天他讲了他与外国人谈笑风生时听到的故事 "很久很久以前,有一位国王突发奇想,想建一座大谷仓. 将所有的谷子都存在这个谷仓里.工匠们干了 ...
- C. Anton and Fairy Tale
链接 [https://codeforces.com/contest/785/problem/C] 题意 初始时有n,第1天先加m开始吃1,但总的不能超过n,第i天先加m开始吃i(如果不够或刚好就吃完 ...
- codeforce Anton and Fairy Tale
题意:有一个谷仓,它的容量为N.第i天先会增加M(不会超出它的容量),然后减少i, 问第几天后谷仓为空,且第一天谷仓是满的. 第i天 增加 减少 1 0 1 2 1 2 3 2 3 -- -- -- ...
- Fairy tale(BFS + 大模拟)
一.题目链接: Fairy tale 二.题目大意: 给你一个N × N 的地图,图上的每个点有四种方向(E W S N),代表着移动方向. 在 t = 0 时,saya 在 (1, 1),treas ...
- 动漫推荐之 Fairy Tale 妖精的尾巴
永远的Fairy Tale!
- Fairy Tale (《传奇》英文版)
这首<Fairy Tale>的旋律应该是中国歌迷再熟悉不过的了,这是迈克学摇滚在2010年的中国巡演中给大家带来的惊喜.填上英文歌词后的<传奇>会有怎样的意境呢?我们一起来静静 ...
- Fairy Tale - 英文版《传奇》迈克学摇滚
向大家推荐一首好听的歌,可以听听试试看 [url]http://www.tudou.com/programs/view/sxJ8uTsEp8A/[/url] 没有MV,只有音乐 Fairy Tale/ ...
最新文章
- 研究生失联19天,父母焦急求助!最后竟然是在写博士研究计划......
- Spring MVC漏洞学习总结
- 统计自然语言处理基础(一)
- 一文读懂 AVL 树
- python的datetime函数_Python连载8-datetime包函数介绍
- 判断平台是windows还是linux,用这个方法就行了
- iOS7应用开发5、视图控制器View Controller及其生命周期
- 双显卡笔记本安装linux,双显卡笔记本安装 Ubuntu 18.04 攻略
- python安装包国内镜像,pip使用国内镜像
- 华为BFD的配置规范
- 计算机毕业设计java+jsp旅游网站(源码+系统+mysql数据库+Lw文档)
- CImageList-CBitmap-Usage
- 数据库 --- 约束
- POI生成workBook时报java.long.ArrayIndexOutOfBoundsEXception:-32768
- 1.软件工程—数据流图
- Flyway 报错:Detected applied migration not resolved locally:2和执行脚本错误
- lottie轻松实现复杂动画(抽奖举例)
- 网络游戏网络同步方案的选择
- 已解决(Python安装报错)Visit python.org to download an earlier version of Python.
- 【面经】三七互娱Java游戏研发实习(一面)
热门文章
- Xadmin 常用插件
- WM6.0系统WIFI与笔记本点对点互联详细解析
- ASP.NET WebForm Best Practice 之PostBack
- LeetCode数据库 178. 分数排名
- buck变换器设计matlab_在数字控制系统中实现LLC变换器的电流模式控制的思考
- Ubuntu Linux服务器安装JDK8
- linux下socket调试,linux 下的socket 调试工具 netcat 使用
- oracle查询时定义临时的变量,oracle学习笔记之临时变量的使用
- python词云分析难吗_Python 词云分析周杰伦《晴天》
- java系列8:private修饰的成员变量怎么传参