COGS 2482. Franky的胡子【二分,高精度】
2482. Franky的胡子
☆ 输入文件:beard.in 输出文件:beard.out 简单对比
时间限制:1 s
内存限制:128 MB
【题目描述】
Franky很苦恼他一直不长胡子。
看到同学大叔一样的胡子,Franky总是很无耻的偷笑...
有一天,杨老师要带Franky参加n天的外出培训!!!好开心!!
在火车上,Franky突然发现自己长了胡子!
杨老师带Franky去查了基因图谱==(好贴心)
并且发现:
1.胡子初始每天深夜都会长v cm;
2.每次在剃掉胡子之后胡子增长的速度会增加s cm/天;
Franky很伤心,并且由于来时并不需要剃须刀,所以只能借杨老师的,但是杨老师很吝啬(哼( ﹁ ﹁ ) ~→)
他只允许Franky使用x次剃须刀,而且只允许在晚上睡前用。
【输入格式】
输入格式:
一行,n,s,v,x四个整数。
【输出格式】
输出在培训期间Franky的胡子最长的那天胡子的长度最短值。
【样例输入】
6 1 1 2
【样例输出】
4
【提示】
保证对于20%的数据,x,n,c,s<=10;
对于70%的数据,x,n<=5000,c,s<=100;
对于100%的数据,x,n<=100000,c,s<=10000;
【来源】
题目链接:http://cogs.cf/cogs/problem/problem.php?pid=2482
经典的二分答案例题
注意到题目要求最大值最小,最大最小是一个典型的二分答案型题目。
所以我们可以二分一个最长的胡子长度,初始我们使R=一个极大值,l=1,mid = (r + l) / 2,然后用模拟的方式运行检验,在运行的过程中如果出现当前胡子长度大于我们二分出的mid我们就需要把当前的胡子剪掉,如果我们n天走下来剪胡子的次数 < x那么对于这个mid值是可行的那么我们让r=mid尝试能不能继续缩小答案,如果>mid那么证明不行我们要扩大答案继续检验,我们不必关心对于一个可行的mid中最长的那个小于mid的情况,因为在二分的过程中我们一定会二分出这个情况。时间复杂度O(nlogm)。
下面给出AC代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,s,v,x;
bool check(ll len)
{
ll speed=v,length=,ci=x;
for(ll i=;i<=n;i++)
{
length+=speed;
if(length>len)
{
length=;
speed+=s;
ci--;
i--;
}
if(ci==-)
return ;
}
return ;
}
int main()
{
freopen("beard.in","r",stdin);
freopen("beard.out","w",stdout);
cin>>n>>s>>v>>x;
ll l=;
ll r=n*(s+v);
while(l<=r)
{
ll mid=(l+r)/;
if(check(mid))
r=mid-;
else l=mid+;
}
cout<<l<<endl;
return ;
}
COGS 2482. Franky的胡子【二分,高精度】的更多相关文章
- POJ-2109 Power of Cryptography(数学或二分+高精度)
题目链接: https://vjudge.net/problem/POJ-2109 题目大意: 有指数函数 k^n = p , 其中k.n.p均为整数且 1<=k<=10^9 , 1< ...
- 【题解】回文串 APIO 2014 BZOJ 3676 COGS 1985 Manacher+后缀数组+二分
这题可以用回文自动机来做,但是我并没有学,于是用Manacher+SA的做法O(nlogn)水过 首先,看到回文串就能想到用Manacher 同样还是要利用Manacher能不重复不遗漏地枚举每个回文 ...
- Cogs 604.方程(排列组合+高精度)
方程 ★☆ 输入文件:equationz.in 输出文件:equationz.out 简单对比 时间限制:1 s 内存限制:128 MB [题目描述] hyc 碰到了一个难题,请你来帮忙解决. 对于不 ...
- poj 1064 高精度 二分
Cable master Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 32191 Accepted: 6888 Descrip ...
- poj题目
poj2965 poj1753:标准的BFS+位运算优化 poj1328:线段覆盖变种,把圆对应到线段上,贪心求解 poj2109:高精度开根,二分+高精度,注意要判断答案的位数,如果按照题目给的范围 ...
- poj 2109 Power of Cryptography (double 精度)
题目:http://poj.org/problem?id=2109 题意:求一个整数k,使得k满足kn=p. 思路:exp()用来计算以e为底的x次方值,即ex值,然后将结果返回.log是自然对数,就 ...
- SGU 111.Very simple problem
题目大意: 求平方不大于n(n<=10^1000)的最大的数. 分析: 二分+高精度乘法 或者 高精度开方... ...
- FFT与多项式、生成函数题目泛做
题目1 COGS 很强的乘法问题 高精度乘法用FFT加速 #include <cstdlib> #include <iostream> #include <algorit ...
- SGU题目总结
SGU还是个不错的题库...但是貌似水题也挺多的..有些题想出解法但是不想写代码, 就写在这里吧...不排除是我想简单想错了, 假如哪位神犇哪天发现请告诉我.. 101.Domino(2015.12. ...
随机推荐
- SAP RFC介绍:关于sRFC,aRFC,tRFC,qRFC和bgRFC
大概八月份的时候做过一个有关两个SAP系统的财务集成的项目,使用到了RFC(Remote Function Call)技术.因为之前有着医疗-CRM相关接口开发的经验,以为自己对RFC很熟悉了,做起来 ...
- JSP和JavaBean总结
JSP JSP全名为Java Server Pages,即java服务器页面,其根本是一个简化的Servlet设计.它是在传统的网页HTML文件中插入Java代码,从而形成JSP文件. JSP注释分为 ...
- React Native绑定微信分享/登录/支付(演示+实现步骤+注意事项)
React Native(以下简称RN)绑定微信分享/微信登录/微信支付的实现演示+源码+注意事项!微信的调用大同小异,本文实现了微信的分享功能,其他功能可以在链接文档里面找到具体的方法. 本文分文三 ...
- UVA 10559 Blocks
题目大意:有一串带颜色的方块,每次可以消掉颜色相同的一段,得到size^2的分数,问最多能得到多少分数.n≤200. 给这题状态跪下来. 显然的区间DP,但设f[i][j]是不够的. 考虑到之前做过的 ...
- Java NIO (三) 通道(Channel)
通道(Channel):由 java.nio.channels 包定义的,Channel 表示 IO 源与目标打开的连接.Channel 类似于传统的"流",只不过 Channel ...
- Django2.0中文文档
title: Django2.0中文文档 tags: Python,Django,入沐三分 grammar_cjkRuby: true --- Django2.0版本已经发布了,我们先来看一个图片 从 ...
- KandQ:单例模式的七种写法及其相关问题解析
设计模式中的单例模式可以有7种写法,这7种写法有各自的优点和缺点: 代码示例(java)及其分析如下: 一.懒汉式 public class Singleton { private static Si ...
- MySQL 数据类型和约束(外键是重点🙄)
数据类型 1. 数字(默认都是由符号,宽度表示的是显示宽度,与存储无关).tinyint 括号里指定宽度 七位2进制数最大数就是2**7 -1=127 最小是-128 验证: create tabel ...
- HTML学习 表格和表单
<table></table> 表格标签 width 宽度 border 边框 cellpadding 内容和单元格之间的 ...
- PAGELATCH_x 等待--转载
转自出处:http://www.cnblogs.com/xwdreamer/archive/2012/08/30/2663232.html 0.参考文献 Microsoft SQL Server企业级 ...