题面

题意:给你N,X,   X表示这本书从X开始编号,每个X是几位数,计数器就加几,

然后问你如果从X,开始编号,计数器为N的时候,翻了几页,不能刚好为N输出-1.

(例如,5 99,答案为2,因为5位数需要,99 100 2+3==5,r如果是6,99则无解输出-1)

题解:当然一段一段的减就行了,每一段长度一样的嘛,预处理10的15次方出来,然后减掉小于位数的,

对于减了剩余的部分,每一个数都是相同位数的,所以用剩下的n mod位数,为0说明有解,不为0就肯定没解了啊!

 #include<bits/stdc++.h>
using namespace std;
#define lld long long
int T;
lld f[],n,x,ans;
int main()
{
scanf("%d",&T);
f[]=;
for (int i=;i<=;i++) f[i]=f[i-]*;
while (T--)
{
ans=;
scanf("%lld%lld",&n,&x);
lld xx=x,i=;
while (xx) xx/=,i++;
while (n>=i*(f[i]-x))
{
n=n-(f[i]-x)*i;
ans+=f[i]-x;
x=f[i];
i++; }
if (n%i==) printf("%lld\n",ans+n/i);else puts("-1");
}
}

Gym-101915A Printing Books 模拟的更多相关文章

  1. Gym - 101620H_Hidden Hierarchy(树+模拟)

    Hidden Hierarchy 题目链接 题目描述 You are working on the user interface for a simple text-based file explor ...

  2. Gym 100851E Easy Problemset (模拟题)

    Problem E. Easy ProblemsetInput file: easy.in Output file: easy.outPerhaps one of the hardest problems ...

  3. gym/102021/J GCPC18 模拟拼图

    模拟拼图 题意: 给定n块拼图,每个拼图为四方形,对应四条边有四个数字,如果为0,表示这个边是在边界的,其他数字表示和另一个拼图的一条边相接.保证每个非零数只出现两次. 思路: 模拟,但是要注意几个情 ...

  4. Codeforces Round #171 (Div. 2) B. Books (模拟队列)

    题意:有一组数,问子数组和最大不超过\(t\)的最多元素个数. 题解:用数组模拟队列,不断的往里面放,队列中的元素之和大于\(t\),就不断地从队头弹出直到满足条件,维护一个最大值即可. 代码: in ...

  5. Gym 101190H Hard Refactoring (模拟坑题)

    题意:给定 n 个区间,让你进行合并,问你最后的区间是,如果是空集,输出 false 如果区间是是 [-32768,32767] ,则是true. 析:进行区间合并,要注意,如果是 x >= 0 ...

  6. codeforces gym 100357 K (表达式 模拟)

    题目大意 将一个含有+,-,^,()的表达式按照运算顺序转换成树状的形式. 解题分析 用递归的方式来处理表达式,首先直接去掉两边的括号(如果不止一对全部去光),然后找出不在括号内且优先级最低的符号.如 ...

  7. Gym - 100637A Nano alarm-clocks 模拟

    题意:有n个时钟,只能顺时针拨,问使所有时间相同的最小代价是多少 思路:将时间排序,枚举拨动到每一个点的时间就好了,容易证明最终时间一定是其中之一 #include <iostream> ...

  8. Gym 101915

    Gym - 101915A  Printing Books 题意:有一本书,从第X页开始,一共用了n位数字,求此书一共多少页.99就是两位数字,100就是三位数字. 思路:直接模拟即可,我用了一个hi ...

  9. Gym - 102861B 、Gym - 102861F、Gym 102861G、Gym 102861L、Gym 102861N、Gym 101968C、Gym 101968D

    训练赛链接:https://vjudge.net/contest/410049#problem/D Gym - 102861B 题意: 在一个二维平面上,给你一个船,问你在这个二维平面上有没有船重叠. ...

随机推荐

  1. vim之快速跳转

    光棍节啦, 淘东西的闲暇上来发vim旅途第一篇日志. 为什么呢? 因为今天是我媳妇的生日, 我用这种只有我知道的方式来纪念一下. ^_^, 宝宝生日快乐! 开篇先说明日志布局, vim学习记录连载中所 ...

  2. 终极解决VS2015 安装失败问题,如 安装包损坏或丢失

    1.去微软官网下载完成ISO镜像,最好不要在线安装, 打开官方链接 https://www.visualstudio.com/zh-cn/downloads/download-visual-studi ...

  3. vim/vi编辑器挂到后台ctrl + z

    vim/vi编辑器通过CTRL+z将文件挂在到后台后,如果要再次进入,需通过jobs查看文件的序号,然后通过fg 序号进入文件进行编辑 (BaiduPictureToWord) [master@ins ...

  4. Python对JSON的操作 day3

    下面将为大家介绍如何使用python语言来编码和解码json对象: json串就是一个字符串,json串必须用双引号,不能使用单引号 使用json函数需要导入json库,import json 1.j ...

  5. 洛谷P1616 疯狂的采药【完全背包】

    题目描述 LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞里对他说 ...

  6. PHP判读MySQL是否执行成功

    针对update 语句等会对数据表进行修改的语句 在mysql_query($sql);后面加上 $result = mysql_affected_rows(); 如果$result 值为-1表明语句 ...

  7. 合并目录中的txt文件

    txt 文件 合并 并 按章节 分隔 # -*- coding: utf8 -*- import os result_name = 'result.txt' def resplit_txt_in_fo ...

  8. poj 2117 去掉割点可以分得的联通图的个数模板

    #include<stdio.h> #include<string.h> #define N 11000 /* 去掉一个割点后,询问可以分得的联通图的个数 */ struct ...

  9. 修改电脑名称后,Oracle客户端连不上

    有以下几个步骤可以尝试,帮助大家缩小错误范围. 1  命令窗口使用sqlplus查看数据库服务是否正常,如下图,没有出现“连接到:”表示数据库服务不正常. 2  在任务管理器中查看数据库的监听是否已经 ...

  10. mysql绑定多个ip地址

    http://jpuyy.com/2013/07/mysql-bind-multi-address.html mysql绑定多个ip地址 发表于2013 年 7 月 1 日 my.cnf中有选项bin ...