CF817C.Really Big Numbers(二分 思维)

简介: CF817C.Really Big Numbers(二分 思维)

linkkk

题意:

定义美丽数为数位和与数值的差大于等于s的数,问有多少个美丽数小于等于n

思路:

可以看出美丽数是满足单调性的,如果x是美丽数,那么x + 1也一定是美丽数,相当于等式两边都增加了1,等式依旧成立。二分找到最小的美丽数即可。

代码:

// Problem: C. Really Big Numbers
// Contest: Codeforces - Educational Codeforces Round 23
// URL: https://codeforces.com/problemset/problem/817/C
// Memory Limit: 256 MB
// Time Limit: 1000 ms
// 
// Powered by CP Editor (https://cpeditor.org)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,s;
bool check(ll x){
  ll sum=0,tmp=x;
  while(x){
    sum+=x%10;x/=10;
  }
  return abs(sum-tmp)>=s;
}
int main(){
  cin>>n>>s;
  ll l=1,r=2e18,ans=n;
  //cout<<check(11)<<" "<<check(12)<<" "<<check(13)<<"\n";
  while(l<=r){
    ll mid=(l+r)/2;
    if(check(mid)) ans=mid,r=mid-1;
    else l=mid+1;
  }
  cout<<max(0ll,n-ans+1)<<endl;
  return 0;
}
目录
相关文章
|
机器学习/深度学习 算法 搜索推荐
【算法设计与分析】再探大O渐近表示法 | 增长顺序 | Big O | Big Omega | Big Order
【算法设计与分析】再探大O渐近表示法 | 增长顺序 | Big O | Big Omega | Big Order
131 0
|
6月前
|
人工智能 BI
CF 1561 D. Up the Strip(数学+思维)
【7月更文挑战第5天】
55 10
|
7月前
CF 1538 G. Gift Set (贪心+思维)
【6月更文挑战第14天】
41 0
|
Serverless
华为机试HJ30:字符串合并处理
华为机试HJ30:字符串合并处理
|
机器学习/深度学习 人工智能
CF1496A Split it!(数学分析)
CF1496A Split it!(数学分析)
49 0
|
人工智能 BI
CF1438B Valerii Against Everyone(考察数学分析问题)
CF1438B Valerii Against Everyone(考察数学分析问题)
74 0
CF763A Timofey and a tree(思维)
CF763A Timofey and a tree(思维)
91 0
牛客hot100--BM88---判断是否为回文字符串(入门难度)
牛客hot100--BM88---判断是否为回文字符串(入门难度)
104 0
牛客hot100--BM88---判断是否为回文字符串(入门难度)
|
存储 测试技术
牛客hot100--BM50---两数之和(简单难度)
牛客hot100--BM50---两数之和(简单难度)
139 0
牛客hot100--BM50---两数之和(简单难度)
SP10707 COT2 - Count on a tree II(欧拉序 树上莫队)
SP10707 COT2 - Count on a tree II(欧拉序 树上莫队)
123 0
SP10707 COT2 - Count on a tree II(欧拉序 树上莫队)