[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 ...
随机推荐
- angularjs启动项目报ERROR in AppModule is not an NgModule解决方法
这主要是ts编译器版本问题,一般是因为ts编译器版本过高导致. 解决方式: npm uninstall -g typescript npm install -g typescript tsc -v 查 ...
- arcgis api for js 之发布要素服务
1. 引言 如果我们要在网页端实现要素的增删改查操作,需要使用到要素服务(FeatureService),本篇文章将介绍如何发布要素服务. 1.1 什么是要素服务 在发布之前,我们先了解下要素服务:要 ...
- C#窗口禁止移动的方法
1,窗口属性中有locked属性,设置为true. (在自己进行编码的时候并没能找到这个属性,貌似只能在窗口设计时进行设置,故此方法无可控性) 2,窗口属性中有FormBorderStyle属性,设置 ...
- codeforces gym 100971 K Palindromization 思路
题目链接:http://codeforces.com/gym/100971/problem/K K. Palindromization time limit per test 2.0 s memory ...
- hdu 2108 Shape of HDU 判断是否为凸多边形
Shape of HDU Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Pro ...
- Codeforces Round #424 (Div. 2, rated, based on VK Cup Finals) E. Cards Sorting 树状数组
E. Cards Sorting time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- P2016 战略游戏
传送门 思路: 前置知识——普通树D: ▲普通的树形 DP : 设 f [ i ][ 0 ] 表示这个点不取,则它的所有子节点都要取:f [ i ][ 1 ] 表示这个点取,则它的子节点取与不取对之前 ...
- session常用操作
session介绍: 1. session和cookie的区别在于,cookie是把信息保存在用户本地的浏览器中,而session是把信息保存在服务器端的内存中, 2. 浏览器向服务器发送一个类键值对 ...
- 内连接查询输出到datagridView
实现步骤: 1. 新建两张对应表的类 例如: 第一张表对应的类 { class ManagerInfo { public Table1 group { get; set; } //重点 需要内连接的字 ...
- IPC 之 AIDL 的使用
一.AIDL 知识储备 1. AIDL 文件支持的数据类型: 基本数据类型 (int , long , char , boolean ,double 等): String 和 CharSequence ...