当前位置: 首页 > wzjs >正文

谁能给个网站谢谢合肥seo报价

谁能给个网站谢谢,合肥seo报价,wordpress设置显示为英文版,王也踏青图照片一道比较简单的题。(我绝对不会告诉你这题我改了很久) 题目意思很简单,我就不过多解释了,我们直接进入正题。 题目要我们求 a a a 个 1 1 1 组成的数与 b b b 个 1 1 1 组成的数的最小公倍数除以 m m m 后的余数。先不考虑…

一道比较简单的题。(我绝对不会告诉你这题我改了很久)

题目意思很简单,我就不过多解释了,我们直接进入正题。

题目要我们求 a a a 1 1 1 组成的数与 b b b 1 1 1 组成的数的最小公倍数除以 m m m 后的余数。先不考虑多的,我们先设定一个函数 change ⁡ ( x ) \operatorname{change}(x) change(x) 表示由 x x x 1 1 1 组成的数,也就是这个:

change ⁡ ( x ) = 111111...11 ⏟ x 个 1 \operatorname{change}(x)=\underbrace{111111...11}_{x\text{个}1} change(x)=x1 111111...11

写的更加数学化一点就是:

change ⁡ ( x ) = 1 0 x − 1 9 \operatorname{change}(x)=\frac{10^x-1}{9} change(x)=910x1

那么我们要求的答案就是:

lcm ⁡ ( change ⁡ ( a ) , change ⁡ ( b ) ) m o d m \operatorname{lcm}(\operatorname{change}(a),\operatorname{change}(b))\bmod m lcm(change(a),change(b))modm

同时又有 lcm ⁡ ( x , y ) = x × y ÷ gcd ⁡ ( x , y ) \operatorname{lcm}(x,y)=x\times y\div\operatorname{gcd}(x,y) lcm(x,y)=x×y÷gcd(x,y)

所以说:

a n s = change ⁡ ( a ) × change ⁡ ( b ) ÷ gcd ⁡ ( change(a) ⁡ , change(b) ⁡ ) m o d m ans=\operatorname{change}(a)\times\operatorname{change}(b)\div\operatorname{gcd}(\operatorname{change(a)},\operatorname{change(b)})\bmod m ans=change(a)×change(b)÷gcd(change(a),change(b))modm

但我们仔细发现: gcd ⁡ ( change ⁡ ( a ) , change ⁡ ( b ) ) \operatorname{gcd}(\operatorname{change}(a),\operatorname{change}(b)) gcd(change(a),change(b)) 这东西也不好求啊,如果我们能把它转化成 a a a b b b 之间的关系就好了。

那么接下来,让我们用感性的思维去看一看这个式子,直觉告诉我们: gcd ⁡ ( change ⁡ ( a ) , change ⁡ ( b ) ) = change ⁡ ( gcd ⁡ ( a , b ) ) \operatorname{gcd}(\operatorname{change}(a),\operatorname{change}(b))=\operatorname{change}(\operatorname{gcd}(a,b)) gcd(change(a),change(b))=change(gcd(a,b))。以下是证明过程。

证明: 假设 1111...11 ⏟ t 个 1 \underbrace{1111...11}_{t\text{个}1} t1 1111...11 同时是 11111...11 ⏟ a 个 1 \underbrace{11111...11}_{a\text{个}1} a1 11111...11 111111...11 ⏟ b 个 1 \underbrace{111111...11}_{b\text{个}1} b1 111111...11 的公因数,则:

111111...11 ⏟ b 个 1 = 1111...11 ⏟ t 个 1 × 1 000...00 ⏟ t − 1 个 0 1 000...00 ⏟ t − 1 个 0 1...1 000...00 ⏟ t − 1 个 0 1 11111...11 ⏟ a 个 1 = 1111...11 ⏟ t 个 1 × 1 000...00 ⏟ t − 1 个 0 1 000...00 ⏟ t − 1 个 0 1...1 000...00 ⏟ t − 1 个 0 1 \underbrace{111111...11}_{b\text{个}1}=\underbrace{1111...11}_{t\text{个}1}\times1\underbrace{000...00}_{t-1\text{个}0}1\underbrace{000...00}_{t-1\text{个}0}1...1\underbrace{000...00}_{t-1\text{个}0}1\\\underbrace{11111...11}_{a\text{个}1}=\underbrace{1111...11}_{t\text{个}1}\times1\underbrace{000...00}_{t-1\text{个}0}1\underbrace{000...00}_{t-1\text{个}0}1...1\underbrace{000...00}_{t-1\text{个}0}1 b1 111111...11=t1 1111...11×1t10 000...001t10 000...001...1t10 000...001a1 11111...11=t1 1111...11×1t10 000...001t10 000...001...1t10 000...001

第一个式子中 000...00 ⏟ t − 1 个 0 1 \underbrace{000...00}_{t-1\text{个}0}1 t10 000...001 这样的循环一共有 b t \frac{b}{t} tb 个,第二个式子中这样的循环则有 a t \frac{a}{t} ta 个,因为要有整数个循环,所以 b t \frac{b}{t} tb a t \frac{a}{t} ta 都是整数,所以 t t t a , b a,b a,b 的公因数。而我们要 1111...11 ⏟ t 个 1 \underbrace{1111...11}_{t\text{个}1} t1 1111...11 最大,所以 t t t 就要是 a , b a,b a,b 的最大公因数,即 t = gcd ⁡ ( a , b ) t=\operatorname{gcd}(a,b) t=gcd(a,b)

由上,我们可以得到:

gcd ⁡ ( 11111...11 ⏟ a 个 1 , 111111...11 ⏟ b 个 1 ) = 111111...11 ⏟ t 个 1 = 111111...11 ⏟ gcd ⁡ ( a , b ) 个 1 \operatorname{gcd}(\underbrace{11111...11}_{a\text{个}1},\underbrace{111111...11}_{b\text{个}1})=\underbrace{111111...11}_{t\text{个}1}=\underbrace{111111...11}_{\operatorname{gcd}(a,b)\text{个}1} gcd(a1 11111...11,b1 111111...11)=t1 111111...11=gcd(a,b)1 111111...11

转化一下就成了:

gcd ⁡ ( change ⁡ ( a ) , change ⁡ ( b ) ) = change ⁡ ( gcd ⁡ ( a , b ) ) \operatorname{gcd}(\operatorname{change}(a),\operatorname{change}(b))=\operatorname{change}(\operatorname{gcd}(a,b)) gcd(change(a),change(b))=change(gcd(a,b))

所以,我们得到了这样一个等式:

a n s = change ⁡ ( a ) × change ⁡ ( b ) ÷ change ⁡ ( gcd ⁡ ( a , b ) ) ans=\operatorname{change}(a)\times\operatorname{change}(b)\div\operatorname{change}(\operatorname{gcd}(a,b)) ans=change(a)×change(b)÷change(gcd(a,b))

但这样我们又要算三遍 change ⁡ ( x ) \operatorname{change}(x) change(x),有没有什么办法可以优化?

这里呢我是采用了倍分的思想。

在上面的证明过程中,我们将 111111...11 ⏟ b 个 1 \underbrace{111111...11}_{b\text{个}1} b1 111111...11 拆成了 1111...11 ⏟ t 个 1 × 1 000...00 ⏟ t − 1 个 0 1 000...00 ⏟ t − 1 个 0 1...1 000...00 ⏟ t − 1 个 0 1 \underbrace{1111...11}_{t\text{个}1}\times1\underbrace{000...00}_{t-1\text{个}0}1\underbrace{000...00}_{t-1\text{个}0}1...1\underbrace{000...00}_{t-1\text{个}0}1 t1 1111...11×1t10 000...001t10 000...001...1t10 000...001,我们沿用这个思路,如果我们把 change ⁡ ( a ) \operatorname{change}(a) change(a) 归为一类, change ⁡ ( b ) ÷ change ⁡ ( gcd ⁡ ( a , b ) ) \operatorname{change}(b)\div\operatorname{change}(\operatorname{gcd}(a,b)) change(b)÷change(gcd(a,b)) 归为一类,那我们就只需要解决后半部分值的问题就行了,后半部分又该怎么做呢?

我们将这个式子转化一下,就成了:

change ⁡ ( b ) ÷ change ⁡ ( t ) = 111111...11 ⏟ b 个 1 ÷ 1111...11 ⏟ t 个 1 = 1 000...00 ⏟ t − 1 个 0 1 000...00 ⏟ t − 1 个 0 1...1 000...00 ⏟ t − 1 个 0 1 \begin{equation}\begin{split}&\operatorname{change}(b)\div\operatorname{change}(t)\\&=\underbrace{111111...11}_{b\text{个}1}\div\underbrace{1111...11}_{t\text{个}1}\\&=1\underbrace{000...00}_{t-1\text{个}0}1\underbrace{000...00}_{t-1\text{个}0}1...1\underbrace{000...00}_{t-1\text{个}0}1\end{split}\end{equation} change(b)÷change(t)=b1 111111...11÷t1 1111...11=1t10 000...001t10 000...001...1t10 000...001

而这又有 b t \frac{b}{t} tb 个循环,因为 t = gcd ⁡ ( a , b ) t=\operatorname{gcd}(a,b) t=gcd(a,b),所以就有 b ÷ gcd ⁡ ( a , b ) b\div\operatorname{gcd}(a,b) b÷gcd(a,b) 个循环。到这,整个思路就彻底结束了。

代码实现:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int a,b,m;
int gcd(int x,int y) {if(y==0) {return x;}return gcd(y,x%y);
}
int qpow(int x,int y) {//快速幂int z=1;while(y) {if(y&1) {z=z*x%m;}y>>=1;x=x*x%m;}return z;
}
int answer(int x,int y) {int now=1,po=qpow(10,y),ans=0;while(x) {if(x&1) {ans=(ans*po%m+now)%m;}x>>=1;now=(now*po%m+now)%m;po=po*po%m;}return ans;
}
signed main() {cin>>a>>b>>m;int g=gcd(a,b);cout<<answer(a,1)*answer(b/g,g)%m;//一共有b/g个循环,每次要乘10^greturn 0;
}

文章转载自:

http://Cp2tVkF4.rshkh.cn
http://FE6FV6Dc.rshkh.cn
http://hA8mAHJW.rshkh.cn
http://tXtozthF.rshkh.cn
http://dKDYbme8.rshkh.cn
http://1DEZcohy.rshkh.cn
http://A94Llw0H.rshkh.cn
http://TlaMMrcy.rshkh.cn
http://bPODu4IF.rshkh.cn
http://0CRKa5kS.rshkh.cn
http://hoxbF9MZ.rshkh.cn
http://HxtjmCng.rshkh.cn
http://biKRepC0.rshkh.cn
http://MNPCi6We.rshkh.cn
http://GExlkl0b.rshkh.cn
http://wtbHhMWf.rshkh.cn
http://y991hgMl.rshkh.cn
http://rcXuG6J3.rshkh.cn
http://eb5WjsvP.rshkh.cn
http://gyeZenL2.rshkh.cn
http://OYLvsw29.rshkh.cn
http://81XhJJY1.rshkh.cn
http://lBfgeg0u.rshkh.cn
http://IGRQ4sjE.rshkh.cn
http://89oK4ahc.rshkh.cn
http://XGVdO2T2.rshkh.cn
http://GhYZQefr.rshkh.cn
http://2MRIC57G.rshkh.cn
http://HDh3mCD2.rshkh.cn
http://wgSy3WfK.rshkh.cn
http://www.dtcms.com/wzjs/647306.html

相关文章:

  • 买卖域名哪个网站好中国大工程建设需要什么样的人才
  • 怎么做网站后门wordpress文章添加动态数据
  • 企业网站策划书天津做网站建设的公司
  • 网站开发进度安排文档公司官网站怎么搞
  • 厂房外墙设计效果图聊城seo整站优化报价
  • 景征网站建设深圳市建设集团有限公司详细地址
  • 中小企业网站建设 网络营销怎么生成网页链接
  • 大连高新区规划建设局网站顺企网app下载
  • 做微商的网站公司推广业务哪个平台好
  • 局域网内网站建设2024网站推广
  • 平面网站模版网站开发seo要求
  • wordpress进网站慢seo整站优化解决方案
  • 网站维护属于什么部门小程序开发费用多少钱
  • 网站制作前的图片路径网站利用微信拉取用户做登录页
  • 网站建设 phpwordpress中文免费企业模板
  • 马鞍山天立建设网站南昌企业网站建设费用
  • 专业做化妆品的网站ac域名网站
  • 服装网站建设教程金寨县住房和城乡建设部网站
  • 网易严选的网站建设wordpress get author
  • 网站建设内容与实现功能淮海中路街道网站建设
  • 淘宝客建网站ios+wordpress
  • 网站 如何做 中英文切换中盛浩瀚建设有限公司网站
  • 做住宿的有几个网站WordPress搭建社区网站
  • 太仓网站公司软件开发工程师证
  • 做网站要会编程么大型网站建设机构
  • 电商站外推广平台有哪些搬瓦工搭建wordpress
  • 布吉商城网站建设自己怎么做网站游戏
  • 网站更换备案号wordpress 响应模板
  • 网站开发要先买服务器吗备案网站名称注意事项
  • 广东网站建设模版淘宝导购网站怎么做