P2022 有趣的数

题目描述

让我们来考虑1到N的正整数集合。让我们把集合中的元素按照字典序排列,例如当N=11时,其顺序应该为:1,10,11,2,3,4,5,6,7,8,9。

定义K在N个数中的位置为Q(N,K),例如Q(11,2)=4。现在给出整数K和M,要求找到最小的N,使得Q(N,K)=M。

输入输出格式

输入格式:

输入文件只有一行,是两个整数K和M。

输出格式:

输出文件只有一行,是最小的N,如果不存在这样的N就输出0。

说明

【数据约定】

40%的数据,1<=K,M<=10^5;

100%的数据,1<=K,M<=10^9。


我大概是看了题解胡乱搞过得。。

首先手玩玩出如何在给定的集合找到指定位置的数,然后玄学看出单调性开始二分答案,最后要判一堆一堆的东西。。

这个题解写的挺好,只是看了前面我后面就去自己yy了


乱搞的代码:

#include <cstdio>
#define ll long long
ll m,k,c=1;
ll get(ll n,ll x,ll d)
{
ll cnt=0;
while(233)
{
if(n>=d&&n<d*10) break;
cnt+=x-d;
x*=10;
d*=10;
}
cnt+=(x>n?n:x)+1-d;
return cnt;
}
ll get0(ll x)
{
ll t=x/10,d=1,cnt=0;
while(t)
d*=10,t/=10;
while(x)
{
cnt+=x+1-d;
d/=10;
x/=10;
}
return cnt;
}
int main()
{
//freopen("data.in","r",stdin);
//freopen("wr.out","w",stdout);
scanf("%lld%lld",&k,&m);
for(ll i=1,f=1;i<=10;i++,f*=10)
{
if(k==f&&m!=i)
{
printf("0\n");
return 0;
}
}
int t=get0(k);
if(t>m)
{
printf("0\n");
return 0;
}
else if(t==m)
{
printf("%d\n",k);
return 0;
}
m-=t-1;
ll l=k*10,r=1e18;
while(c<k) c*=10;
k*=10;
if(k-c>m)
{
printf("%lld\n",m+c-2);
return 0;
}
while(l<r)
{
ll mid=l+r>>1;
if(get(mid,k,c)>=m)
r=mid;
else
l=mid+1;
}
printf("%lld\n",l-1);
return 0;
}

2018.7.9

最新文章

  1. sh7.创建yum源脚本练习
  2. CI框架搭建
  3. 梯度下降(Gradient Descent)小结
  4. 让计算机崩溃的python代码,求共同分析
  5. Linux-CentOS 6.5 mini 中没有curses.h的问题
  6. JavaScript中的ParseInt(&quot;08&quot;)和“09”返回0的原因分析及解决办法
  7. 关于linux python vim的一些基础知识(很零散)
  8. C# JackLib系列之Form窗体的ShowWithoutActivation属性及其作用
  9. iOS开发:AVPlayer实现流音频边播边存
  10. Java从入门到精通(一)
  11. [置顶] STM32移植contiki进阶之三(中):timer 中文版
  12. VS2012生成绿色版程序的方法
  13. 正确、安全地停止SpringBoot应用服务
  14. tcpdump使用方法小结
  15. python自学1——接口测试
  16. XIB中拖UIScrollView的困难
  17. @ConfigurationProperties + @EnableConfigurationProperties
  18. urllib.parse.quote
  19. python——append与extend
  20. (转)Xcode导航快捷键(大全)

热门文章

  1. JetBrains激活 PyCharm | IntelliJ IDEA | CLion | WebStorm...
  2. js中if else switch 条件判断的替代方法
  3. java实验五实验报告
  4. hive-2.3.3安装
  5. Cosplay之孩子的妈咪
  6. 【CS231N】5、神经网络静态部分:数据预处理等
  7. Linux上多次restore Tensorflow模型报错
  8. Delphi函数的out、var等关键字的作用,和使用场景
  9. 如何获取app的activity
  10. Excel中用REPT函数制作图表