CF1433A Boring Apartments 题解
Content
我们把仅由一个或多个相同的数位组成的数字叫作“无聊的数字”。我们把 \(\leqslant 10000\) 的这种数字按照以下规则排列:
- 首先,将仅由 \(1\) 组成的 \(\leqslant 10000\) 的“无聊的数字”按照升序排列:\(1,11,111,1111,...\)。
- 再将仅由 \(2\) 组成的 \(\leqslant 10000\) 的“无聊的数字”按照升序排列:\(2,22,222,2222,...\)。
- 以此类推。
给出 \(t\) 次询问,每次询问给定一个无聊的数字 \(x\),请求出当数列排到 \(x\) 时,\(x\) 以及前面所有的“无聊的数字”的位数之和。
数据范围:\(1\leqslant t\leqslant 36,1\leqslant x\leqslant 9999\)。
Solution
虽然翻译可能和原来题面有些许出入,但是不会影响做题的。
我们假设现在给出的 \(x\) 仅由数字 \(a\) 构成,那么前面肯定 \(10(a-1)\) 次,这是由于你在前面的仅由 \(1,2,...,a-1\) 构成的“无聊的数字”中,每个数字按了 \(1+2+3+4=10\) 次,所以就是 \(a-1\) 次,然后,我们根据这个数的位数 \(y\),我们可以推出当前的数字一共按了 \(1+2+...+y=\dfrac{y(y+1)}{2}\) 次,所以一共按了 \(10(a-1)+\dfrac{y(y+1)}{2}\) 次。
官方题解是直接字符串读入然后提取构成的数字和数位的,下面给出一种不同于官方题解的具体实现:我们可以直接拿 \(10\) 对这个数取模得到其个位数,根据“无聊的数字”的定义可知它就是由这个个位数组成的。然后我们通过分离数位得到其位数,最后直接按照上面的公式计算即可。虽然效率会有些低,但是对于这道题目是足够的了。
Code
int t, x;
int main() {
//This program is written in Windows 10 by Eason_AC
getint(t);
while(t--) {
getint(x);
int p = x, digit = 0;
while(p) {
digit++;
p /= 10;
}
printf("%d\n", (x % 10 - 1) * 10 + (digit + 1) * digit / 2);
}
return 0;
}
CF1433A Boring Apartments 题解的更多相关文章
- Non Super Boring Substring 题解(hash+思维)
题目链接 题目大意 给你一个长度为d(d<=1e5)的字符串,要你求有多少个子串满足这个子串不包含长度大于等于k的回文子串 题目思路 首先可以hash预处理,然后O(1)用前缀hash值和后缀h ...
- Codeforces Round #677 (Div. 3)【ABCDE】
比赛链接:https://codeforces.com/contest/1433 A. Boring Apartments 题解 模拟即可. 代码 #include <bits/stdc++.h ...
- Codeforces Round #677 (Div. 3) 题解
Codeforces Round #677 (Div. 3) 题解 A. Boring Apartments 题目 题解 简单签到题,直接数,小于这个数的\(+10\). 代码 #include &l ...
- 山东省第四届ACM大学生程序设计竞赛解题报告(部分)
2013年"浪潮杯"山东省第四届ACM大学生程序设计竞赛排名:http://acm.upc.edu.cn/ranklist/ 一.第J题坑爹大水题,模拟一下就行了 J:Contes ...
- hihoCoder 1430 : A Boring Problem(一琐繁题)
hihoCoder #1430 : A Boring Problem(一琐繁题) 时间限制:1000ms 单点时限:1000ms 内存限制:256MB Description - 题目描述 As a ...
- sdut 2610:Boring Counting(第四届山东省省赛原题,划分树 + 二分)
Boring Counting Time Limit: 3000ms Memory limit: 65536K 有疑问?点这里^_^ 题目描述 In this problem you a ...
- HDU 5793 A Boring Question (逆元+快速幂+费马小定理) ---2016杭电多校联合第六场
A Boring Question Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others ...
- Boring count(字符串处理)
Boring count Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 多校6 1001 HDU5793 A Boring Question (推公式 等比数列求和)
题解:http://bestcoder.hdu.edu.cn/blog/ 多校6 HDU5793 A Boring Question // #pragma comment(linker, " ...
随机推荐
- 获取客户端Mac地址
近期有个需求,需要获取客户端Mac地址作为白名单验证的依据.使用.net,B/S架构.先百度找了一些获取mac地址的方法, using System; using System.Collections ...
- Atcoder Regular Contest 089 D - ColoringBalls(DP)
Atcoder 题面传送门 & 洛谷题面传送门 神仙题. 在下文中,方便起见,用 R/B 表示颜色序列中球的颜色,用 r/b 表示染色序列中将连续的区间染成的颜色. 首先碰到这一类计算有多少个 ...
- 洛谷 P5046 [Ynoi2019 模拟赛] Yuno loves sqrt technology I(分块+卡常)
洛谷题面传送门 zszz,lxl 出的 DS 都是卡常题( 首先由于此题强制在线,因此考虑分块,我们那么待查询区间 \([l,r]\) 可以很自然地被分为三个部分: 左散块 中间的整块 右散块 那么这 ...
- Linux之crond定时任务
1. 使用crontab工具配置的定时任务 2. 配置定时任务建议规范 3. 定时任务配置问题导致系统出现故障实例 1. 使用crontab工具配置的定时任务 名称 crontab - 维护单个用户的 ...
- Identity Server 4 从入门到落地(四)—— 创建Web Api
前面的部分: Identity Server 4 从入门到落地(一)-- 从IdentityServer4.Admin开始 Identity Server 4 从入门到落地(二)-- 理解授权码模式 ...
- Webpack 打包 Javascript 详细介绍
本篇我们主要介绍Webpack打包 Javascript.当然,除了可以打包Javascript之外,webpack还可以打包html.但是这不是我们本篇的重点.我们可以参考 Webpack HTML ...
- day35前端基础之BOM和DOM
day35前端基础之BOM和DOM BOM操作 简介 BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进行"对话". ...
- 27.0 linux VM虚拟机IP问题
我的虚拟机是每次换一个不同的网络,b不同的ip,使用桥接模式就无法连接,就需要重新还原默认设置才行: 第一步:点击虚拟机中的编辑-->虚拟网络编辑器 第二步:点击更改设置以管理员权限进入 第三步 ...
- 大数据学习day15----第三阶段----scala03--------1.函数(“_”的使用, 函数和方法的区别)2. 数组和集合常用的方法(迭代器,并行集合) 3. 深度理解函数 4 练习(用java实现类似Scala函数式编程的功能(不能使用Lambda表达式))
1. 函数 函数就是一个非常灵活的运算逻辑,可以灵活的将函数传入方法中,前提是方法中接收的是类型一致的函数类型 函数式编程的好处:想要做什么就调用相应的方法(fliter.map.groupBy.so ...
- web必知,多终端适配
导读 移动端适配,是我们在开发中经常会遇到的,这里面可能会遇到非常多的问题: 1px问题 UI图完美适配方案 iPhoneX适配方案 横屏适配 高清屏图片模糊问题 ... 上面这些问题可能我们在开发中 ...