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

本文共 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

你可能感兴趣的文章
velocity的一些优化记录
查看>>
Oracle---使用PL/SQL Developer连接Oracle12C(64位)版本
查看>>
④云上场景:浙江网商银行,三层金融云实践
查看>>
mongoDB VS PostgreSQL dml performance use python (pymongo & py-postgresql)
查看>>
Github上的star和fork是什么
查看>>
说说 ParcelJS
查看>>
2018.03.08、View的事件分发机制笔记
查看>>
基于ubuntu16.04快速构建Hyperledger Fabric网络
查看>>
前端异常处理最佳实践
查看>>
# 基于VirtualApk的Android手游SDK插件化架构(一)
查看>>
jvm类加载机制
查看>>
让更多人知道你——给开源库提交 pr
查看>>
使用ipmi调节r410的风扇转速
查看>>
Spring Cloud超简单十分钟入门实例
查看>>
Linux环境Apache2.4+mysql5.7+php5.6快速安装mysql
查看>>
MySql 日常指导,及大表优化思路
查看>>
设计模式之 - 单例模式
查看>>
用 Python 脚本,监听附近网络 Wi-Fi 设备,通过邮件和微信进行消息推送
查看>>
巅峰之证!首位阿里云ACE认证专家产生
查看>>
Spring Cloud Alibaba Sentinel对RestTemplate的支持
查看>>