Little Sub and Mr.Potato's Math Problem-构造
2024-10-19 14:37:14
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=5864
思路 : 判断小于它的合法的,再看大于它的合法的,特判10000、10、1000.... 这种情况
.
#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll t,n,k,m,po[222];
ll getmin(ll x)
{
ll ret=0,data[55],id=0;
po[0]=1;
while(x)
{
data[id++]=x;
x/=10;
po[id]=po[id-1]*10;
}
for(int i=0; i<id; i++)
ret+=data[i]-po[id-i-1]+1;
return ret;
}
int main()
{
scanf("%lld",&t);
while(t--)
{
scanf("%lld%lld",&k,&m);
m-=getmin(k);
if(m<0)printf("0\n");
else if(m==0)printf("%lld\n",k);
else
{
ll hig,big;
for(ll i=1;; i*=10)
if(k/i<10)
{
big=i;
hig=k-i;
break;
}
if(big==k)printf("0\n");
else
{
big*=10;
hig*=10;
while(m>hig)
{
m-=hig;
hig*=10;
big*=10;
}
printf("%lld\n",big+m-1);
}
}
}
return 0;
}
最新文章
- jQuery的$.ajax
- 图片效果集合(js、jquery或html5)
- 动手实践虚拟网络 - 每天5分钟玩转 OpenStack(10)
- How to: Change Sales Rep/Team via Mass Update
- java变量命名规则
- [转]Android dex分包方案
- linux gdb 没有符号表被读取。请使用 ";file"; 命令。
- Delphi 如何清除动态数组的内存?
- mtk的安卓手机刷机时出现的错误信息
- AE分级渲染
- Labview学习之波形图表的历史数据
- 在找一份相对完整的Webpack项目配置指南么?这里有
- centos7安装gcc7.2.0
- Bootstrap treeview增加或者删除节点
- 一些简单二分题,简单的hash,H(i),字符串题
- 你不知道的JavasScript上篇&#183;第五章&#183;原型&#183;下
- Ubuntu下navicat过期解决办法
- springboot+mybatis实现动态切换数据源
- UVaOJ 694 - The Collatz Sequence
- Crontab 在linux中的非常有用的Schedule Jobs