签到一脸

$a_n=10a_{n-1}+1$求出通项$a_n=\frac{10^n-1}{9}$,然后可以化成$10^n=9K+1 (mod m)$,求一个最小的n

然后我们知道这个n一定是<=m的

然后我们设n=i*t-j,其中$t=ceil(\sqrt{m})$,0<=i,j<t,移项,变成$10^{i*t}=(9K+1)*10^j$

我们把每个可能的$(9K+1)*10^j$都存下来(用hash或map),然后再枚举i去找和$10^{i*t}$相等的最大的j就可以了

复杂度基本上是$O(\sqrt{M}logM)$的

要写快速模乘、要开longlong

 #include<bits/stdc++.h>
#define pa pair<int,int>
#define ll long long
using namespace std;
const int maxn=; inline ll rd(){
ll x=;char c=getchar();int neg=;
while(c<''||c>''){if(c=='-') neg=-;c=getchar();}
while(c>=''&&c<='') x=x*+c-'',c=getchar();
return x*neg;
} map<ll,ll> mp;
ll K,M,SM; inline ll modx(ll a,ll b){
ll re=;
while(b){
if(b&) re=(re+a)%M;
a=(a<<)%M,b>>=;
}return re;
} inline ll modp(ll a,ll p){
ll re=;
while(p){
if(p&) re=modx(re,a);
a=modx(a,a),p>>=;
}return re;
} int main(){
ll i,j,k;
K=rd();M=rd();SM=ceil(sqrt(1.0*M));
ll b=(*K+)%M,x=;
for(i=;i<SM;i++,x=modx(x,)) mp[modx(x,b)]=i;
ll y=x;
for(i=SM;;i+=SM,y=modx(y,x)){
if(mp[y]){
printf("%lld\n",i-mp[y]);break;
}
}
return ;
}

最新文章

  1. 03.LoT.UI 前后台通用框架分解系列之——多样的表格
  2. Sprint(第八天11.21)
  3. git 找回丢失的commit
  4. TrustedInstaller管理权限
  5. HDU Coprime
  6. C++Primer 第十四章
  7. android:scaleType属性
  8. meta property=og标签含义及作用
  9. UOJ #236. 【IOI2016】railroad
  10. 用webpack4从零开始构建react脚手架
  11. 解决android sdk 运行出现 could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037:的问题
  12. 开源流媒体服务器SRS学习笔记(4) - Cluster集群方案
  13. python 全栈开发,Day95(RESTful API介绍,基于Django实现RESTful API,DRF 序列化)
  14. oracle &lt;&gt; 选不出为null的部分
  15. 处理全站请求编码,无论是GET还是POST,默认是UTF-8
  16. SpringBoot在Kotlin中的实现(二)
  17. spring boot整合activemq消息中间件
  18. JavaScript 之基础知识
  19. oracle数据库导入导出09192255
  20. SubSets,SubSets2, 求数组所有子集

热门文章

  1. shell脚本中的数据传递方式
  2. C#编程:从控制台读取数字的两种方式
  3. 【终结版】C#常用函数和方法集汇总
  4. Munge服务部署和测试
  5. 一文让你熟练掌握Linux的ncat(nc)命令
  6. CrackMe-005全破详解(图文+源码)--上篇
  7. Nginx负载均衡中后端节点服务器健康检查的操作梳理
  8. @Scheduled 定时
  9. jsp中获取不到servlet的cookie
  10. UserControl 的一个值得注意的问题 [属性&quot; * &quot;的代码生成失败.错误是:&quot;程序集&quot;*.Version=1.0.0.0,Culture=neutral,..........无标记为序列化&quot;