[二分]煤气灶

news/2024/11/6 11:02:38/

链接:https://ac.nowcoder.com/acm/problem/21860
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

小j开始打工,准备赚钱买煤气灶。
第一天,小j的工资为n元,之后每天他的工资都比前一天多d元。
已知煤气灶需要m元,求小j最少工作几天才能买到煤气灶。

输入描述:

四个整数 n,m,d,x
分别表示小j第一天的工资,煤气灶的价格,工资每天的增长量,答案不超过x

输出描述:

一个数表示答案
示例1

输入

复制
10 100 20 100

输出

复制
4

说明

10+30+50+70>=100

备注:

0≤n,d≤1e9,n+d>0
1≤m≤1e18
1≤x≤1e9

题意:每天都能得到工资,一开始为n,每一天都可能在比前一天多领d(注意d可能为0),问最少多少天你领的工资的总和能超过买煤气灶需要的m元,天数不超过x
思路:求和问题,每天都可能多增加d的值,所以这是一个初值为n,公差为d的等差数列求和,等差数列求和公式:Sn=a0*n+(n*(n-1)*d/2),又注意到m最大是1e18,若要让等差数列之和Sn>=m,则Sn会超出long long的范围,所以要对公式进行变形,
设n为初值,in为天数,d为公差,m为总和至少需要大于的值,得到

    n*in+(in*(in-1)*d)/2>=m
    2*(n*in)+(in(in-1)*d)>=2*m
    in*(in-1)*d>=2*(m-(n*in))

同时注意到1<=in<=x,所以就想到二分一下答案

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 ll n,m,d,x;
 5 bool check(ll in){
 6     return in*(in-1)*d>=2*(m-(n*in));
 7 }
 8 int main(){
 9     cin>>n>>m>>d>>x;
10     ll l=1,r=x,mid=(l+r)>>1;
11     while(l<r){
12         if(check(mid))r=mid;
13         else l=mid+1;
14         mid=(l+r)>>1;
15     }
16     printf("%lld\n",mid);
17 }
18 /***
19 n*in+(in*(in-1)*d)/2>=m
20 2*(n*in)+(in(in-1)*d)>=2*m
21 in*(in-1)*d>=2*(m-(n*in))
22 ***/

 

 

转载于:https://www.cnblogs.com/Railgun000/p/11293710.html


http://www.ppmy.cn/news/148025.html

相关文章

[牛客竞赛] 煤气灶(二分)

链接&#xff1a;https://ac.nowcoder.com/acm/contest/332/B 来源&#xff1a;牛客网 题目描述 小j开始打工&#xff0c;准备赚钱买煤气灶。 第一天&#xff0c;小j的工资为n元&#xff0c;之后每天他的工资都比前一天多d元。 已知煤气灶需要m元&#xff0c;求小j最少工作几天…

二分|煤气灶

牛客寒假基础训练营 题目描述 小j开始打工&#xff0c;准备赚钱买煤气灶。 第一天&#xff0c;小j的工资为n元&#xff0c;之后每天他的工资都比前一天多d元。 已知煤气灶需要m元&#xff0c;求小j最少工作几天才能买到煤气灶。 输入描述: 四个整数 n,m,d,x 分别表示小j第一天的…

煤气灶(二分查找)

链接&#xff1a;https://ac.nowcoder.com/acm/problem/21860 来源&#xff1a;牛客网 小j开始打工&#xff0c;准备赚钱买煤气灶。 第一天&#xff0c;小j的工资为n元&#xff0c;之后每天他的工资都比前一天多d元。 已知煤气灶需要m元&#xff0c;求小j最少工作几天才能买到…

6B.煤气灶(C++)

煤气灶&#xff08;C&#xff09; 点击做题网站链接 题目描述 小j开始打工&#xff0c;准备赚钱买煤气灶。 第一天&#xff0c;小j的工资为n元&#xff0c;之后每天他的工资都比前一天多d元。 已知煤气灶需要m元&#xff0c;求小j最少工作几天才能买到煤气灶。 输入描述: 四…

[SpringBoot]创建聚合项目

前言 聚合项目(父子级项目)的核心价值&#xff1a; 版本的控制&#xff0c;可以通过父项目做依赖的管理&#xff0c;而依赖管理的核心其实就是管理各个依赖项的版本。以至于后续我们会有若干个子项目&#xff0c;这些子项目所使用的依赖项的版本是相同的&#xff0c;避免出现版…

绿源2022一款新电动车——cola3,祝你3.8女神节快乐

有人说“陪伴是最长情的告白”&#xff0c;所以女神节不能只有3月8日这一天&#xff0c;而是一直陪伴&#xff0c;一起到永远。这就像绿源电动车一样&#xff0c;不仅眼前一亮的感觉&#xff0c;而且能够一直给你陪伴&#xff0c;每天给你新鲜。就像有的绿源电动车用户说的一样…

刹车刹不住,太危险?我在绿源杭州电动车店提的新车超稳哒~

上个礼拜&#xff0c;我在下班回家的小路口&#xff0c;差点和别人撞上了。原因是我的车刹车不灵&#xff0c;右转弯前滑行了好一会儿也不见速度下来&#xff0c;幸亏那边准备左转弯的外卖小哥刹住车了&#xff0c;当时吓得我真的要心脏骤停了~ 到家后&#xff0c;想想电动车刹…

拉着老公,逛了一趟绿源电动车连锁店,喜提新座驾。

上个月&#xff0c;同事买了一辆造型“炒鸡”卡哇伊的绿源电动车。看到之后&#xff0c;让我瞬间感觉自己那台“老电驴”不香了。回家后&#xff0c;我便时不时给老公念叨换车的事。终于在我的软磨硬泡之下&#xff0c;他答应周末陪我到小区附近的绿源门店逛逛。哈哈&#xff0…