zoukankan      html  css  js  c++  java
  • 二分|煤气灶

    牛客寒假基础训练营

    题目描述

    小j开始打工,准备赚钱买煤气灶。
    第一天,小j的工资为n元,之后每天他的工资都比前一天多d元。
    已知煤气灶需要m元,求小j最少工作几天才能买到煤气灶。
    输入描述:
    四个整数 n,m,d,x
    分别表示小j第一天的工资,煤气灶的价格,工资每天的增长量,答案不超过x

    输出描述:

    一个数表示答案
    示例1

    输入

    10 100 20 100

    输出

    4

    二分,求最小的满足条件的解。等差数列求和,不等式求解。数据大卡long long。

    代码:

    #include<bits/stdc++.h>
    #define eps 1
    using namespace std;
    
    
    typedef long long ll;
    ll n,m,d,x;
    
    bool judge(ll x){
    	return (x*x*d  + (2*n-d)*x-2*m) >=0;
    }
    
    int main(){
    	scanf("%lld%lld%lld%lld",&n,&m,&d,&x);
    	ll l = 0,r = x+1;
    	while(r - l > eps){
    		ll mid = (l+r)>>1;
    		if(judge(mid)) r = mid; //满足条件说明 值过大了  
    		else l = mid;
    	}
    	printf("%lld
    ",r); //打印满足条件的 r 
    	return 0;
    } 
    
  • 相关阅读:
    跨源资源共享(CORS)
    7.9 restful api
    7.8 http redirected
    7.7 设置http首部
    7.6 request form post
    7.5 URL 解析
    7.4 http request post get
    7.3 ip host反解析
    7.2 tcpclient 基本web
    7.1 获取所有网卡ip地址
  • 原文地址:https://www.cnblogs.com/fisherss/p/10357678.html
Copyright © 2011-2022 走看看