CF897B Chtholly's request 题解
Content
我们将长度为偶数的回文数称作 zcy 数,比如 \(11,1221\) 是 zcy 数,而 \(34,121\) 不是。假设第 \(i\) 个 zcy 数为 \(a_i\),求 \(\sum\limits_{i=1}^na_i\)(前 \(n\) 个 zcy 数的和)模 \(p\) 后的结果。
数据范围:\(1\leqslant n\leqslant 10^5,1\leqslant p\leqslant 10^9\)。
Solution
在写题解之前做一个提醒:这篇题解里的代码用 C++11 及以下的语言提交会出现 WA 的情况,需要用 C++14 及以上的语言提交。 有可能是因为 C++14 及以上的语言里面的语句和 C++14 以下的语言的对应语句的效果不同。
以下是正文:
由于无论什么数乘以 \(2\) 都是偶数,所以我们很容易发现,第 \(i\) 个 zcy 数,即第 \(i\) 个长度为偶数的回文数,其实就相当于将 \(i\) 和 \(i\) 反转过后的数拼接在一起得到的数,所以,我们考虑直接暴力求出 \(i\) 翻转后得到的数 \(i'\),然后设数字 \(x\) 的长度为 \(L_x\),那么第 \(i\) 个 zcy 数就可以这样表示:\(10^{L_x}\times i+i'\),然后直接暴力加,边加边取模即可。
如果您去 CF 官网上看这道题目的标签的话,你会发现里面有个“暴力”的标签,所以这道题目总的来说就是一点:暴力。
Code
ll ans;
int n, m;
ll digitnum(ll x) {
ll p = x, ans = 0;
while(p) {
ans++;
p /= 10;
}
return ans;
}
ll turn(ll x) {
ll p = x, ans = 0, digit[27] = {0};
while(p) {
digit[++digit[0]] = p % 10;
p /= 10;
}
_forll(i, 1, digit[0]) ans += digit[i] * (ll)pow(10, digit[0] - i);
return ans;
}
int main() {
//This program is written in Windows 10 by Eason_AC
getint(n), getint(m);
_for(i, 1, n) {
int len = digitnum(i), rev = turn(i);
ll tmp = ((ll)pow(10, len) * i + rev) % m;
ans = (ans + tmp % m) % m;
}
writell(ans);
return 0;
}
CF897B Chtholly's request 题解的更多相关文章
- codeforces 897B Chtholly's request 偶数长度回文数
codeforces 897B Chtholly's request 题目链接: http://codeforces.com/problemset/problem/897/B 思路: 暴力求出这100 ...
- Codeforces Round #449 (Div. 2) B. Chtholly's request【偶数位回文数】
B. Chtholly's request time limit per test 2 seconds memory limit per test 256 megabytes input standa ...
- Codeforces Round #449 (Div. 2)-897A.Scarborough Fair(字符替换水题) 897B.Chtholly's request(处理前一半) 897C.Nephren gives a riddle(递归)
A. Scarborough Fair time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- 897B. Chtholly's request#长度为偶数的回文数(模拟)
题目出处:http://codeforces.com/problemset/problem/897/B 题目大意:构造一个题意要求的zcy数之后取模 #include<iostream> ...
- Codeforces 897 B.Chtholly's request-思维题(处理前一半)
B. Chtholly's request time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- Codeforces Round #449 (Div. 2)ABCD
又掉分了0 0. A. Scarborough Fair time limit per test 2 seconds memory limit per test 256 megabytes input ...
- 【bzoj1146】[CTSC2008]网络管理Network 倍增LCA+dfs序+树状数组+主席树
题目描述 M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个部门之间协同工作,公司搭建了一个连接整个公司的通信网络.该网络的结构由N个路由器和N-1条高 ...
- Codeforces Round #449 Div. 2 A B C (暂时)
A. Scarborough Fair 题意 对给定的长度为\(n\)的字符串进行\(m\)次操作,每次将一段区间内的某一个字符替换成另一个字符. 思路 直接模拟 Code #include < ...
- 【BZOJ1146】[CTSC2008]网络管理Network 树状数组+DFS序+主席树
[BZOJ1146][CTSC2008]网络管理Network Description M公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门.为了让分布在世界各地的N个部门之间协同工 ...
随机推荐
- Python+selenium定位一组元素,复选框
- Codeforces 1119H - Triple(FWT)
Codeforces 题目传送门 & 洛谷题目传送门 FWT 的 immortal tea %%% 首先我们可以写出一个朴素的 \(dp\),设 \(dp_{i,j}\) 表示考虑前 \(i\ ...
- Codeforces 193E - Fibonacci Number(打表找规律+乱搞)
Codeforces 题目传送门 & 洛谷题目传送门 蠢蠢的我竟然第一眼想套通项公式?然鹅显然 \(5\) 在 \(\bmod 10^{13}\) 意义下并没有二次剩余--我真是活回去了... ...
- EXCEL-批量删除筛选出的行,并且保留首行
筛选->ctrl+G->可见单元格->鼠标右键->删除整行. 之前的时候,是有个方法类似于上述步骤,可以保留标题行的,但是,不知道是不是少了哪一步,上述过程总是会删除标题行.就 ...
- 一次线上GC故障解决过程记录
排查了三四个小时,终于解决了这个GC问题,记录解决过程于此,希望对大家有所帮助.本文假定读者已具备基本的GC常识和JVM调优知识,关于JVM调优工具使用可以查看我在同一分类下的另一篇文章: http: ...
- Android系统编程入门系列之硬件交互——多媒体麦克风
在多媒体摄像头及相关硬件文章中,对摄像头的使用方式需要区分应用程序的目标版本以使用不同的代码流程,而与之相比,麦克风硬件的使用就简单多了. 麦克风及相关硬件 麦克风硬件在移动设备上作为音频的采集设备, ...
- 日常Java 2021/11/9
线程的优先级 每一个Java线程都有一个优先级,这样有助于操作系统确定线程的调度顺序.Java线程的优先级是一个整数,其取值范围是1(Thread.MIN_PRIORITY ) -10 (Thread ...
- react动态添加样式:style和className
react开发过程中,经常会需要动态向元素内添加样式style或className,那么应该如何动态添加呢??? 一.react向元素内,动态添加style 例如:有一个DIV元素, 需要动态添加一个 ...
- Oracle参数文件—pfile与spfile
oracle的参数文件:pfile和spfile 1.pfile和spfile Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的, ...
- springboot-使用AOP日志拦截实现
一 前言 借助spring的AOP功能,我们可以将AOP应用至全局异常处理,全局请求拦截等,本篇文章的核心功能就是使用AOP实现日志记录,比如哪些用户进行了哪些操作,对于一个成功的项目这是必须记录的, ...