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的胡子【二分,高精度】的更多相关文章

  1. POJ-2109 Power of Cryptography(数学或二分+高精度)

    题目链接: https://vjudge.net/problem/POJ-2109 题目大意: 有指数函数 k^n = p , 其中k.n.p均为整数且 1<=k<=10^9 , 1< ...

  2. 【题解】回文串 APIO 2014 BZOJ 3676 COGS 1985 Manacher+后缀数组+二分

    这题可以用回文自动机来做,但是我并没有学,于是用Manacher+SA的做法O(nlogn)水过 首先,看到回文串就能想到用Manacher 同样还是要利用Manacher能不重复不遗漏地枚举每个回文 ...

  3. Cogs 604.方程(排列组合+高精度)

    方程 ★☆ 输入文件:equationz.in 输出文件:equationz.out 简单对比 时间限制:1 s 内存限制:128 MB [题目描述] hyc 碰到了一个难题,请你来帮忙解决. 对于不 ...

  4. poj 1064 高精度 二分

    Cable master Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 32191 Accepted: 6888 Descrip ...

  5. poj题目

    poj2965 poj1753:标准的BFS+位运算优化 poj1328:线段覆盖变种,把圆对应到线段上,贪心求解 poj2109:高精度开根,二分+高精度,注意要判断答案的位数,如果按照题目给的范围 ...

  6. poj 2109 Power of Cryptography (double 精度)

    题目:http://poj.org/problem?id=2109 题意:求一个整数k,使得k满足kn=p. 思路:exp()用来计算以e为底的x次方值,即ex值,然后将结果返回.log是自然对数,就 ...

  7. SGU 111.Very simple problem

    题目大意:              求平方不大于n(n<=10^1000)的最大的数. 分析:              二分+高精度乘法 或者 高精度开方...               ...

  8. FFT与多项式、生成函数题目泛做

    题目1 COGS 很强的乘法问题 高精度乘法用FFT加速 #include <cstdlib> #include <iostream> #include <algorit ...

  9. SGU题目总结

    SGU还是个不错的题库...但是貌似水题也挺多的..有些题想出解法但是不想写代码, 就写在这里吧...不排除是我想简单想错了, 假如哪位神犇哪天发现请告诉我.. 101.Domino(2015.12. ...

随机推荐

  1. AntData.ORM框架 之 读写分离

    环境准备 准备2台机器配置好Master Slaver模式 我是用vmware 2台虚拟机配置的.有需要请联系. Master:192.168.11.130 Slaver:192.168.11.133 ...

  2. UVA 11600 Masud Rana

    题目大意:有一个n个点的完全图,有些路上有妖怪.现在一个人从一号点出发,每天随机走向另一个点,消灭路上的妖怪,问平均几天后所有点之间存在没有妖怪的路径.点数≤30. 看到点这么少肯定状压,看见存不下肯 ...

  3. bzoj 1835: [ZJOI2010]base 基站选址

    Description 有N个村庄坐落在一条直线上,第i(i>1)个村庄距离第1个村庄的距离为Di.需要在这些村庄中建立不超过K个通讯基站,在第i个村庄建立基站的费用为Ci.如果在距离第i个村庄 ...

  4. jmeter通过org.sqlite.JDBC驱动连接db数据库

    最近遇到个项目,默认业务库为内置db数据库,在性能脚本编辑过程中要通过正则表达式提取器(关联)获取对应的id号,通过该id号到db数据库中查找对应的数据源name字段内容,为下一个post请求做par ...

  5. Java版本APP接口安全设计

    Java版本APP接口安全设计 安全设计分为两种: 1.传输安全. 2. 会话安全. 1.传输安全 怎么保证接口经过网络传输不被抓包获取? 1.如果只是使用对称性算法,破解APP拿到加密密钥就可以解密 ...

  6. SQL基础学习_05_函数、谓词、CASE表达式

    函数 算术函数 1. 四则运算: +.-.*./  2. ABS:求绝对值, ABS(数值) 3. MOD: 求余,MOD(被除数,除数) 4. ROUND:四舍五入,ROUND(对象数值,保留小数的 ...

  7. 修改wamp中mysql的默认空密码

    WAMP安装好后,mysql密码是为空的,那么要如何修改呢? 一.打开mysql控制台. 提示输入密码,因为现在是空,所以直接按回车. 二.输入"use mysql",意思是使用m ...

  8. System.Windows.Forms.PropertyGrid的使用

    PropertyGrid 控件简介 .NET 框架 PropertyGrid 控件是 Visual Studio .NET 属性浏览器的核心.PropertyGrid 控件显示对象或类型的属性,并主要 ...

  9. android自定义文本框,后面带清空按钮

    android常见的带清空按钮的文本框,获得焦点时如果有内容则显示,否则不显示 package com.qc.health.weight; import com.qc.health.R; import ...

  10. JAVA有哪些数据类型?基本数据类型各占多少个字节

    java的数据类型分为:基本数据类型和引用数据类型. 基本数据类型各占多少个字节: 数据类型 字节 默认值 byte 1 0 short 2 0 int 4 0 long 8 0 float 4 0. ...