售卖数字(二分)找不到原题

简介: 售卖数字(二分)找不到原题

比赛时不知道为啥一开始用ll没写出来,代码找不到了


后来就坚定地用double来二分


流程


情景:售价随N增大而增大,用二分

答案区间在售卖数字1-1e9,还有个买不到时输出的0,因此将l,r设置为0,1e9


check函数里写个位数计算小程序

ll t = mid,cnt = 0;

while(t){

   t /= 10;

   cnt ++;

}


******************


完整ac代码

#include <iostream>
using namespace std;
typedef long long ll;
ll A,B,X;
bool check(ll mid){
    ll cnt = 0,t = mid;
    while(t){
        t /= 10;
        cnt++;
    }
    if(A * mid + B * cnt <= X) return true;
    else return false;
}
int main(){
    cin >> A >> B >> X;
    ll l = 0,r = 1e9;
    while (l < r){
        ll mid = (l + r + 1) >> 1;
        if(check(mid)) l = mid;
        else r = mid -1 ;
    }
    cout << l << endl;
    return 0;
}
目录
相关文章
【Leetcode -441.排列硬币 -448.找到所有数组中消失的数字】
【Leetcode -441.排列硬币 -448.找到所有数组中消失的数字】
47 0
|
7月前
|
算法 容器
【LeetCode刷题】滑动窗口解决问题:水果成篮、找到字符串中所有字母异位词
【LeetCode刷题】滑动窗口解决问题:水果成篮、找到字符串中所有字母异位词
|
8月前
|
Java
每日一题《剑指offer》数组篇之数组中重复的数字
每日一题《剑指offer》数组篇之数组中重复的数字
59 0
每日一题《剑指offer》数组篇之数组中重复的数字
|
存储 算法 Serverless
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
75 0
代码随想录算法训练营第六天 | LeetCode 242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和
|
算法
代码随想录算法训练营第二十五天 | LeetCode 216. 组合总和 III、17. 电话号码的字母组合
代码随想录算法训练营第二十五天 | LeetCode 216. 组合总和 III、17. 电话号码的字母组合
60 0
|
算法 Java
【算法题目解析】杨氏矩阵数字查找
一道面试时可能遇到的算法问题,杨氏矩阵。可以重点关注思考方式,而不是死记硬背。
45 0
|
算法 安全
代码随想录算法训练营第六天| 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
代码随想录算法训练营第六天| 242.有效的字母异位词 349. 两个数组的交集 202. 快乐数 1. 两数之和
|
存储 算法 Java
代码随想录训练营day25| 216.组合总和III 17.电话号码的字母组合
代码随想录训练营day25| 216.组合总和III 17.电话号码的字母组合
|
存储 算法
【题型总结】找到第n个自定义数 | 丑数系列 + 神奇数字
思路:对于对于任意一个丑数 x,其与任意的质因数(2、3、5)相乘,结果(2x、3x、5x)仍为丑数。因此可以使用优先队列(小根堆)存放丑数x,每次从队列取出最小值x,并将x所对应的2x、3x和5x入队。第n次出队的值即为第n个丑数
274 0
【题型总结】找到第n个自定义数 | 丑数系列 + 神奇数字
|
Java
《LeetCode刷题》—448. 找到所有数组中消失的数字
《LeetCode刷题》—448. 找到所有数组中消失的数字
119 0
《LeetCode刷题》—448. 找到所有数组中消失的数字