[codechef July Challenge 2017] Calculator
CALC: 计算器
题目描述
大厨有一个计算器,计算器上有两个屏幕和两个按钮。初始时每个屏幕上显示的都是 0。每按
一次第一个按钮,就会让第一个屏幕上显示的数字加 1,同时消耗 1 单位的能量。
每按一次第二个按钮,会让第二个屏幕上显示的数字加上第一个屏幕上显示的数字,同时消
耗 B 单位的能量。
初始时,计算器有 N 单位的能量。大厨想知道在能量限制下,第二个屏幕上最大可以出现的
数字是多少?
输入格式
输入的第一行包含一个整数 T,代表测试数据的组数。接下来是 T 组数据。
每组数据仅有一行,包含两个整数 N 和 B。
输出格式
对于每组数据,输出一行,包含一个整数,代表所求的答案。
数据范围和子任务
• 1 ≤ T ≤ 10, 000
• 1 ≤ N, B ≤ 1, 000, 000, 000
子任务 1(20 分):
• 1 ≤ N, B ≤ 1, 000
子任务 2(80 分):
• 无附加限制
样例数据
输入
3
10 2
8 5
6 1
输出
12
3
9
样例解释
对于第一组数据,可以使用 10 单位的能量,按一次第二个按钮耗费 2 单位的能量。大厨可以
按照下面的方案操作:

我们假设按了x次一号按钮,y次二号按钮,则由贪心的想法(即现一次性按完按钮1,再按完按钮2)得知x,y满足:
x+By=N,求x*y的最大值。
则x=N-By,折ans=x*y,则ans= -By^2+Ny
这是一个二次函数,顶点在-b/2a,也就是 N/2B。由于x,y是整数,所以除了取x=N/2B,还要取x=N/2B-1,x=N/2B+1等算一下(因为顶点不一定就是整点)。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<string>
using namespace std;
int main(){
int T; scanf("%d",&T);
for (; T; T--){
long long N,B; scanf("%lld%lld",&N,&B);
*B),x;
long long ans=(-B*y+N)*y;
x=y-,ans=max(ans,(-B*x+N)*x);
x=y,ans=max(ans,(-B*x+N)*x);
x=y+,ans=max(ans,(-B*x+N)*x);
printf("%lld\n",ans);
}
;
}
[codechef July Challenge 2017] Calculator的更多相关文章
- [codechef July Challenge 2017] Chef and Sign Sequences
CHEFSIGN: 大厨与符号序列题目描述大厨昨天捡到了一个奇怪的字符串 s,这是一个仅包含‘<’.‘=’和‘>’三种比较符号的字符串.记字符串长度为 N,大厨想要在字符串的开头.结尾,和 ...
- [codechef July Challenge 2017] IPC Trainers
IPCTRAIN: 训练营教练题目描述本次印度编程训练营(Indian Programming Camp,IPC)共请到了 N 名教练.训练营的日程安排有 M 天,每天最多上一节课.第 i 名教练在第 ...
- [codechef July Challenge 2017] Pishty and tree
PSHTTR: Pishty 和城堡题目描述Pishty 是生活在胡斯特市的一个小男孩.胡斯特是胡克兰境内的一个古城,以其中世纪风格的古堡和非常聪明的熊闻名全国.胡斯特的镇城之宝是就是这么一座古堡,历 ...
- CF&&CC百套计划2 CodeChef December Challenge 2017 Chef And Easy Xor Queries
https://www.codechef.com/DEC17/problems/CHEFEXQ 题意: 位置i的数改为k 询问区间[1,i]内有多少个前缀的异或和为k 分块 sum[i][j] 表示第 ...
- CF&&CC百套计划2 CodeChef December Challenge 2017 Chef and Hamming Distance of arrays
https://www.codechef.com/DEC17/problems/CHEFHAM #include<cstdio> #include<cstring> #incl ...
- CF&&CC百套计划2 CodeChef December Challenge 2017 Total Diamonds
https://www.codechef.com/DEC17/problems/VK18 #include<cstdio> #include<iostream> #includ ...
- CF&&CC百套计划2 CodeChef December Challenge 2017 Penalty Shoot-out
https://www.codechef.com/DEC17/problems/CPLAY #include<cstdio> #include<algorithm> using ...
- CF&&CC百套计划2 CodeChef December Challenge 2017 Chef And his Cake
https://www.codechef.com/DEC17/problems/GIT01 #include<cstdio> #include<algorithm> using ...
- codechef January Challenge 2017 简要题解
https://www.codechef.com/JAN17 Cats and Dogs 签到题 #include<cstdio> int min(int a,int b){return ...
随机推荐
- web开发测试注意点
1.用户操作多页面情况 如果用session来获取当前页面情况时要特别注意,操作时出现另一个页面的情况,会出现传参数混乱 解决:后台可以获取并比对判断当前页面某些参数值
- html 进度条
<html> <head> <title>进度条</title> <style type="text/css"> .co ...
- Python安装第三方库的安装技巧
电脑:Windows10 64位. Python IDE 软件:JetBrains PyCharm Community Edition 2018.1.3 x64 Python version : Py ...
- SSL证书申请,如何快速通过SSL文件验证。
申请SSL证书会让我们进行验证域名,一般方式如下: 1.FTP验证 2.文件验证 3.DNS验证 这三种方式各有各的优缺点,本文解决如何在IIS的环境下通过sslforfree网站的文件验证. 域名: ...
- 设置本地虚拟域名windows+apache
C:\WINDOWS\system32\drivers\etc\hosts 在这个文件中 最下面添加. 127.0.0.1 localhost.com 127.0.0.1 cho.com 12 ...
- Django与缓存
我们都知道Django建立的是动态网站,正常情况下,每次请求过来都经历了这样一个过程: 接收请求 -> url路由 -> 视图处理 -> 数据库读写 -> 视图处理 -> ...
- [转]QT中QString与string的转化,解决中文乱码问题
QString str2qstr(const string str) { return QString::fromLocal8Bit(str.data()); } string qstr2str(co ...
- Mac python3.6 安装即使用 psycopg2
学习下python调用PostgreSQL数据库 首先需要安装 psycopg2 python3安装: pip install psycopg2-binary 官网地址: https://pypi.o ...
- Python PyQt5 Pycharm 环境搭建及配置
PyQt5相关安装 python 版本 python 3.6.3 1.安装PyQt5 执行命令: pip install pyqt5 2.安装PyQt5-tools 执行命令:pip install ...
- Python数据分析-Day1-Numpy模块
1.numpy.genfromtxt读取txt文件 import numpyworld_alcohol = numpy.genfromtxt("world_alcohol.txt" ...