jzoj2700-数字【数论,LCM】

正题

luogu题目链接:https://www.luogu.org/problemnew/show/P4193


题目大意

定义一个函数D(x)D(x)D(x)S(x)S(x)S(x)S(x)S(x)S(x)表示xxx的各位之和
D(n)={D(S(n)),S≥10S(n)D(n)=\left\{\begin{matrix} \\D(S(n)),S\geq 10 \\S(n) \\ \\ \end{matrix}\right.D(n)=D(S(n)),S10S(n)
L∼RL\sim RLR之间有多个xxx满足x=D(k)∗kx=D(k)*kx=D(k)k


解题思路

因为(n−S(n))mod9=0(n-S(n))\ mod\ 9=0(nS(n)) mod 9=0,所以D(n)=(n−1)mod9+1D(n)=(n-1)\ mod\ 9+1D(n)=(n1) mod 9+1
22680modx=0(x∈[1..9])22680\ mod\ x=0(x\in [1..9])22680 mod x=0(x[1..9])
若一个数n=D(k)∗kn=D(k)*kn=D(k)k,那么n+22680=(k+22680D(k))∗D(k)n+22680=(k+\frac{22680}{D(k)})*D(k)n+22680=(k+D(k)22680)D(k)
证明:

(k+22680D(k))∗D(k)−k∗D(k)=22680(k+\frac{22680}{D(k)})*D(k)-k*D(k)=22680(k+D(k)22680)D(k)kD(k)=22680
(k+22680D(k)−k)∗D(k)=22680(k+\frac{22680}{D(k)}-k)*D(k)=22680(k+D(k)22680k)D(k)=22680
(k+22680D(k)−k)∗D(k)=22680(k+\frac{22680}{D(k)}-k)*D(k)=22680(k+D(k)22680k)D(k)=22680
k∗D(k)+22680−k∗D(k)=22680k*D(k)+22680-k*D(k)=22680kD(k)+22680kD(k)=22680
22680=2268022680=2268022680=22680
证毕

然后之间根据循环节预处理1∼226801\sim 22680122680的就好了


codecodecode

#include<cstdio>
#define LCM 22680
#define ll long long
using namespace std;
ll n,f[1000000],ans;
ll D(ll x)
{return (x-1)%9+1;}
ll ask(ll x)//1~x的个数
{return x/LCM*ans+f[x%LCM];}
int main()
{scanf("%lld",&n);for(ll i=1;i<=LCM;i++)//预处理{for(ll j=1;j<=9;j++)if(D(i/j)==j&&i%j==0){f[i]=1;ans++;break;}f[i]+=f[i-1];}while(n--){ll l,r;scanf("%lld%lld",&l,&r);printf("%lld\n",ask(r)-ask(l-1));}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323125.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Servlet】获取并输出服务器获得的数据

获取&#xff1a; String name req.getParameter(“username”); System.out.println(name); 输出 PrintWriter pw resp.getWriter(); pw.write(name); 学习serlvet的最佳学习地点https://www.bilibili.com/video/av68412637/?p136servlet知识点&#xff1a;servlet接口&…

回文是指正读反读均相同的字符序列;如“abba”和“abdba”均是回文,但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。(提示:将一半字符入栈)

文章目录 1.题目描述 2.算法实现 1.题目描述 回文是指正读反读均相同的字符序列&#xff1b;如“abba”和“abdba”均是回文&#xff0c;但“good”不是回文。试写一个算法判定给定的字符序列是否是回文。&#xff08;提示&#xff1a;将一半字符入栈&#xff09; 2.算法实现…

ASP.NET Core 2.0 + EF6 + Linux +MySql混搭

好消息&#xff01;特好消息&#xff01;同时使用ASP.NET Core 2.0和.NET Framework类库还能运行在linux上的方法来啦&#xff01; 是的&#xff0c;你没有看错&#xff01;ASP.NET Core 2.0&#xff0c;.NET Framework类库&#xff0c;linux通通都给你&#xff0c;不要998只要…

面试被问Mysql没答上来?阿里P5:总结了55道常见面试题,收藏一波

转载自 面试被问Mysql没答上来&#xff1f;阿里P5:总结了55道常见面试题&#xff0c;收藏一波 正文开始前&#xff0c;分享阿里 P8 高级架构师吐血总结的 《Java 核心知识体系&面试资料.pdf》, 非卖课程的哟&#xff01; 阿里 P8 级高级架构师吐血总结的一份 Java 核心知…

jzoj3511-cza的蛋糕【状态压缩dp,dfs】

正题 题目大意 n∗mn*mn∗m的矩阵&#xff0c;有些阻挡&#xff0c;求至少要多少个1∗21*21∗2或2∗12*12∗1的块铺在上面使得没用可以继续铺的地方。 解题思路 因为mmm很小&#xff0c;明显状压。 用fi,j,kf_{i,j,k}fi,j,k​表示第iii行&#xff0c;上一行状态为jjj&#xff…

【C单链表】链表与尾插法

struct struct的几种用法。 1、基本结构体定义 struct stu {int score;int id;char name[20]; };2、进阶结构体定义 struct stu {int score;int id;char name[20]; }st1;下面多了个st1&#xff0c;其实就相当于 struct stu {int score;int id;char name[20]; }; struct stu…

请设计一个栈,实现十进制数转任意进制数。

文章目录 1.题目描述 2.代码实现 1.题目描述 请设计一个栈&#xff0c;实现十进制数转任意进制数 2.代码实现 #include <iostream> using namespace std;#define MAXSIZE 100typedef struct {int *base;//栈底指针int *top;//栈顶指针int stacksize;//栈最大容量 } S…

开源纯C#工控网关+组态软件(四)上下位机通讯原理

一、 网关的功能&#xff1a;承上启下 最近有点忙&#xff0c;更新慢了。感谢园友们给予的支持&#xff0c;现在github上已经有。目标是最好的开源组态&#xff0c;看来又近一步^^ 之前有提到网关是物联网的关键环节&#xff0c;它的作用就是承上启下。 下位机有下位机的语言…

【Java】继承与多态

1、继承 由于一个对象功能的单一性&#xff0c;我们想对其进行扩展&#xff0c;但想保留其属性和功能&#xff0c;我们就必须用到继承。 java继承的特性&#xff1a; 单继承&#xff1a;java里的对象不同于C&#xff0c;只能进行单继承&#xff0c;即一个对象只能有一个父亲 …

C++描述 国王给骑士发放金币 ||

C描述 国王给骑士发放金币 || 国王将金币作为工资&#xff0c;发放给忠诚的骑士。第一天&#xff0c;骑士收到一枚金币&#xff1b;之后两天&#xff08;第二天和第三天&#xff09;&#xff0c;每天收到两枚金币&#xff1b;之后三天&#xff08;第四、五、六天&#xff09;&a…

jzoj3519-灵能矩阵【LCM,树形dp】

正题 题目大意 一棵树&#xff0c;每个叶子节点有权值&#xff0c;每个点的权值是它这棵子树中的所有叶子节点权值之和。可以减少叶子节点的值&#xff0c;要求减少最少的值使得对于每个点&#xff0c;它的所有子节点的权值都相等。 解题思路 如果将叶子节点的深度优先访问顺…

微软Tech Summit 2017,等你来打Call

2017年10月31至11月3日&#xff0c;由微软举办的Tech Summit 2017技术暨生态大会将在北京盛大举办&#xff0c;要在北京连开四天。今年的技术大会看头十足&#xff0c;不仅有大咖级人物带来十二大主题课程&#xff0c;更有三天四场的主题之夜。微软技术大会最早是由微软技术教育…

C++描述杭电OJ 2021.发工资 ||

C描述杭电OJ 2021.发工资 || Problem Description 财务处的小胡老师最近就在考虑一个问题&#xff1a;如果每个老师的工资额都知道&#xff0c;最少需要准备多少张人民币&#xff0c;才能在给每位老师发工资的时候都不用老师找零呢&#xff1f; 这里假设老师的工资都是正整数…

ABP从入门到精通(5):.扩展国际化语言资源

ABP的有些组件使用的该组件自带的语言包资源&#xff0c;所以在有些时候会因为我们当前使用的语言对应的语言包不全&#xff0c;而造成日志一直记录WARN。ABP给我们提供了扩展语言包资源的接口&#xff0c;可以解决这个问题。 以下示例代码适用于ABP .net core版本。我要为名为…

欢乐纪中某B组赛【2018.12.22】

前言 全暴力第9了解一下&#xff0c; 成绩 RankRankRank是有算别人的 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC9992017myself2017myself2017myself71.471.471.436.436.436.43030305559992017xxy2017xxy2017xxy71.471.471.436.436.436.43030305551111112017zyc…

【Mysql】mysql基本操作

创建 创建拥有三个字段的表单 create table qq(id int primary key auto_increment ,username varchar(100) ,password varchar(100) )DEFAULT CHARSETutf8mb4;关于编码问题&#xff0c;如果显示问号&#xff0c;则可以在后面加个utf8 CREATE TABLE IF NOT EXISTS father_m…

用数组遍历二叉树

#include<bits/stdc.h> using namespace std;void fun(char bt[],char c) {int i0;while(bt[i]!\n){if(bt[i]!c) i;else break;}int nstrlen(bt);if(in){cout<<"没有该结点"<<endl;}else if(i0){cout<<"该节点为根&#xff0c;没有双亲…

CoreCLR源码探索(八) JIT的工作原理(详解篇)

在上一篇 我们对CoreCLR中的JIT有了一个基础的了解,这一篇我们将更详细分析JIT的实现. JIT的实现代码主要在https://github.com/dotnet/coreclr/tree/master/src/jit下, 要对一个的函数的JIT过程进行详细分析, 最好的办法是查看JitDump. 查看JitDump需要自己编译一个Debug版本的…

P2607-[ZJOI2008]骑士【基环树,树形dp】

正题 题目大意 每个骑士有一个不可以同时上场的骑士&#xff0c;和一个战斗力。求最大战斗力。 解题思路 类似没有上司的舞会 其实就是在基环树森林&#xff0c;我们可以利用二次树形dp的方法。 先找到环&#xff0c;然后强行将环断开进行一次dp&#xff0c;然后强行连上进行…

【php】正则无法截取\反斜杠的解决方法

今天想将上次的图片上传功能优化一下&#xff0c;遇到一个问题&#xff0c;获取临时文件的名字时&#xff0c;由于名字中不能有\&#xff0c;所以必须对获取的文件名进行剪切&#xff0c;本人没有系统学习过php&#xff0c;所以有些知识点还是得重新学习。 获取到得字符串&…