博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #219 (Div. 2) B. Making Sequences is Fun
阅读量:6210 次
发布时间:2019-06-21

本文共 2161 字,大约阅读时间需要 7 分钟。

B. Making Sequences is Fun
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

We'll define S(n) for positive integer n as follows: the number of the n's digits in the decimal base. For example,S(893) = 3S(114514) = 6.

You want to make a consecutive integer sequence starting from number m (m, m + 1, ...). But you need to payS(nk to add the number n to the sequence.

You can spend a cost up to w, and you want to make the sequence as long as possible. Write a program that tells sequence's maximum length.

Input

The first line contains three integers w (1 ≤ w ≤ 1016), m (1 ≤ m ≤ 1016), k (1 ≤ k ≤ 109).

Please, do not write the %lld specifier to read or write 64-bit integers in C++. It is preferred to use the cincoutstreams or the %I64d specifier.

Output

The first line should contain a single integer — the answer to the problem.

Sample test(s)
input
9 1 1
output
9
input
77 7 7
output
7
input
114 5 14
output
6
input
1 1 2
output
0

    多么典型的二分枚举呀,不过需要注意小细节。

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define Max(a,b) ((a)>(b)?(a):(b))#define Min(a,b) ((a)<(b)?(a):(b))using namespace std;typedef unsigned long long LL ;LL dp[19] ;LL num[19] ;void init(){ num[1] = 1 ; for(int i = 2 ; i <= 19 ; i++) num[i] = num[i - 1] * 10 ; for(int i = 1 ; i <= 18 ; i++) dp[i] = i * (num[i+1] - num[i]) ;}LL get_all_S(LL x){ LL sum = 0 ; int i ; for(i = 2 ; i <= 18 ; i++){ if(x >= num[i]) sum += dp[i-1] ; else break ; } sum += (i-1)*(x-num[i-1]+1) ; return sum ;}LL M ,W , K;int judge(LL x){ return W >= K*(get_all_S(x) - get_all_S(M-1)) ;}LL calc(){ LL L ,R ,mid , ans = -1; L = M ; R = (LL)1000000000000000000 ; while(L <= R){ mid = (L + R) >> 1 ; if(judge(mid)){ ans = mid ; L = mid + 1 ; } else R = mid -1 ; } return ans==-1?0:ans - M + 1 ;}int main(){ init() ; LL x ; while(cin>>W>>M>>K){ cout<
<

 

转载于:https://www.cnblogs.com/liyangtianmen/p/3474109.html

你可能感兴趣的文章
基于http协议使用protobuf进行前后端交互
查看>>
UML设计一个电影票务销售系统(四)
查看>>
AlphaGo Zero用它来调参?【高斯过程】到底有何过人之处?
查看>>
Linux平台Oracle多个实例启动说明
查看>>
bash腳本編程之三 条件判断及算数运算
查看>>
php cookie
查看>>
linux下redis安装
查看>>
Sqlserver表值函数
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
StringBuilder用法小结
查看>>
UVa 10252-Common Permutation
查看>>
CSS - 修改input - placeholder 和 readonly 的样式
查看>>
Revel运行APP出现的路径问题
查看>>
android studio :cannot resolve symbol R
查看>>
paper 20 :color moments
查看>>
代码大全
查看>>
博客园作业4--数组
查看>>
DataTable.ImportRow()与DataTable.Rows.Add()的区别
查看>>