(File IO): input:loan.in output:loan.out
时间限制: 1000 ms 空间限制: 262144 KB 具体限制
Goto ProblemSet


题目描述
FarmerJohnFarmer JohnFarmerJohn 欠了 BessieNBessie NBessieN 加仑牛奶(1≤N≤1012)(1≤N≤10^12)(1≤N≤1012)。他必须在 KKK 天内将牛奶给 BessieBessieBessie。但是,他不想将牛奶太早拿出手。另一方面,他不得不在还债上有所进展,所以他必须每天给 BessieBessieBessie 至少 MMM 加仑牛奶(1≤M≤1012)(1≤M≤10^12)(1≤M≤1012)。
以下是 FarmerJohnFarmer JohnFarmerJohn 决定偿还 BessieBessieBessie 的方式。首先他选择一个正整数 XXX。然后他每天都重复以下过程:
(1)假设 FarmerJohnFarmer JohnFarmerJohn 已经给了 BessieGBessie GBessieG 加仑,计算 (N−G)/X(N−G)/X(N−G)/X 向下取整。令这个数为 YYY。
(2)如果 YYY 小于 MMM,令 YYY 等于 MMM。
(3)给 BessieYBessie YBessieY 加仑牛奶。
求 XXX 的最大值,使得 FarmerJohnFarmer JohnFarmerJohn 按照上述过程能够在 KKK 天后给 BessieBessieBessie 至少 NNN 加仑牛奶 (1≤K≤1012)(1≤K≤10^12)(1≤K≤1012)。


输入
输入仅有一行,包含三个空格分隔的正整数 N、KN、KN、K 和 MMM,满足 K⋅M<NK⋅M<NK⋅M<N。
注意这个问题涉及到的整数规模需要使用 646464 位整数类型(例如,C/C++中的“longlong”)C/C++ 中的“long long”)C/C++中的“longlong”)。

输出
输出最大的正整数 XXX,使得按照上述过程 FarmerJohnFarmer JohnFarmerJohn 会给 BessieBessieBessie 至少 NNN 加仑牛奶。


样例输入
10 3 3

样例输出
2


数据范围限制
测试点 1−31-31−3 满足 K≤105K≤10^5K≤105。
测试点 4−104-104−10 没有额外限制。


提示
在这个测试用例中,当 X=2X=2X=2 时 FarmerJohnFarmer JohnFarmerJohn 第一天给Bessie5Bessie 5Bessie5 加仑,后两天每天给 BessieM=3Bessie M=3BessieM=3 加仑。


解题思路
首先一定是二分xxx,不必多说但是如果真的一天天扫过去,每次check()check()check()是O(k)O(k)O(k)的,明显超时,所以在check()check()check()时会使用类似除法分块的方法。假设现在剩下了rrr的欠债,还剩t天
循环退出条件:r⩽0∣∣t==0r⩽0∣∣t==0r⩽0∣∣t==0,这时直接通过r⩽0r⩽0r⩽0的成立与否判断x的成立与否。。
那么y=⌊r/x⌋y=⌊ r/x ⌋y=⌊r/x⌋如果y<=my<=my<=m,那么直接就以mmm为每天的还债量,于是r−=tm,t=0r-=tm,t=0r−=tm,t=0。
否则就计算一下会有连续多少天的每日还债量是yyy,假设这种情况持续aaa天,那么可以知道在a−1a-1a−1天之后的还债量=y=y=y,而aaa天之后的还债量<y<y<y。


代码

#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<algorithm>
#include<iomanip>
#include<cmath>
using namespace std;
long long n,k,m,l,r,mid;
bool check(long long x)
{long long kk=k,nn=n;while(1){long long y,yy;y=nn/x;if(y<m)return m*kk>=nn;yy=nn/y-x+1;if(yy>kk)yy=kk;nn-=yy*y;kk-=yy;if(nn<=0)return 1;if(kk==0)return 0;}
}
int main(){freopen("loan.in","r",stdin);freopen("loan.out","w",stdout);scanf("%lld%lld%lld",&n,&k,&m);l=1,r=n;while(l<r){mid=(l+r+1)/2;if(check(mid))l=mid;elser=mid-1;}    printf("%lld",l);
}

(纪中)2417. Loan Repayment【数学】相关推荐

  1. 2417. Loan Repayment

    2417. Loan Repayment 题目描述 Farmer John 欠了 Bessie N 加仑牛奶(1≤N≤10^12).他必须在 K 天内将牛奶给 Bessie.但是,他不想将牛奶太早拿出 ...

  2. 【USACO 2020 January Silver】Loan Repayment 题解

    [USACO 2020 January Silver]Loan Repayment 题目: 题目描述 Farmer John 欠了 Bessie N 加仑牛奶(1≤N≤10^12).他必须在 K 天内 ...

  3. 2019寒假纪中集训总结学期总结(流水账)

    学期总结 这学期上了初三,学校的初.高中校区对调,我们的班主任也由一个生物老师换成了一个化学老师. 之前的班主任比较年轻,跟我们这群学生有这很好的感情,亦师亦友,陪伴我们度过了几乎没有中考压力的初一. ...

  4. 纪中2019(上)游记+总结

    目录之下 文章目录 目录之下 游记之下 Day−1Day-1Day−1 Day0Day0Day0 Day1Day1Day1 Day2Day2Day2 Day3Day3Day3 Day4Day4Day4 ...

  5. PKUWC2019纪中游记

    day-4 晚上考完化学被告知要停课训练 半喜半忧吧,可以为冬令营做准备,写不了寒假作业 day-3 早起训练,但估计在比赛时还是睡了至少1个小时,只会暴力 只改出了一题,还有一道分治fft在拖 da ...

  6. 纪中游记(7.11~7.22)

    Day 0 早上 早上十点多从家里出发,坐了一个多小时的车,到广州,路上因为过于无聊,然后直接小颓了一波 中午 到了广州,找大哥出来吃了个饭(牛扒直接嗦死) 下午 然后又坐车到中山,又是一波小颓:) ...

  7. 2019年暑假 纪中培训总结

    前言 这次期末考完估计级排80+80+80+.反正语文.数学.英语.历史.政治.地理都感觉考差了. 结果语文.英语.政治.历史.地理.物理都考得跟shi一样 语文做题时漏了两道题,心态很崩.作文和阅读 ...

  8. 纪中 Day13Day14

    纪中 Day13&Day14 T1: 高精减例题 我竟然在输出0的时候换了行!! T2: 想蒙分,没做出来 T3: 深搜蒙分 T4: 数学不好,没推出方程 T1 Oliver的成绩 题目: O ...

  9. 2021.7纪中快乐游记(下)

    DayDayDay 7:7:7: 7.187.187.18 周日放假! 早上居然6:30就起来了.去吃了个早餐就回机房. 按照原计划,应该是要写作业的,所以很自觉的拿出数学试卷写完一张半. 然后看到c ...

最新文章

  1. 【原创】parseInt大改造
  2. 勘误表:《网络程序设计(第二版)》西安电子科技大学出版社
  3. Jsp+Servlet+JavaBean经典MVC模式理解
  4. @query传参_VueRouter之query与params两种传参区别
  5. JZOJ 5850. 【NOIP提高组模拟2018.8.25】e
  6. Kira同学:斩获百度校招提前批offer备战细节全揭秘
  7. 用C#.NET调用Java开发的WebService传递int,double问题,出现java无法获
  8. 斐讯k1潘多拉专版固件_斐讯K1刷专版潘多拉固件以及教程(使用感受)
  9. 漫谈C++:良好的编程习惯与编程要点
  10. 如何实现用户通信授权的可信、可知、可追溯?——通信授权服务技术解读
  11. Bone Collector【01背包】
  12. python xml.dom模块解析xml
  13. 《图解算法》学习笔记之散列表(hash table)
  14. 教你如何用R进行数据挖掘
  15. 人生如逆旅,我亦是行人
  16. websocket 实现长连接原理
  17. GBK转UTF8汉字数量为奇数位时,多出来的末尾汉字会乱码
  18. 李宏毅机器学习(22)
  19. 二十五条哈佛励志金句
  20. veni vidi vici密钥我的生日ACIGS解密_25人在同一天生日!男女比例又是多少?阳光新生大数据来了!...

热门文章

  1. 51单片机检测温湿度并且上传到阿里云
  2. html制作过程总结经验,网页基础制作教程:学习HTML经验总结
  3. 一款基于企业微信的固定资产管理软件
  4. 怎样用两部手机同时登陆一个QQ(两部手机同时在线)
  5. 这15部评分9.0以上纪录片,让你放假后足不出户就可以看遍世界!(附链接)
  6. app爬虫之Android模拟器与fildder的搭建
  7. ATUO CAD 如何延伸线段?
  8. spring-cloud-gateway GlobalFilter 自定义鉴权失败 返回数据结构
  9. 在8086中,逻辑地址、偏移地址、物理地址,分别指的是什么
  10. 四、网络层(一)网络层的功能