题目描述:

给定整数K和质数m,求最小的正整数N,使得 11111⋯1(N个1)≡K(mod m)

说人话:就是 111...1111 mod m =K

题解:

将两边一起*9+1,左边就是10^ans,然后BSGS即可。

代码:

#include<map>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define ll long long
ll k,m;
map<ll,int>mp;
ll fastadd(ll x,ll y,ll p)
{
ll as1 = x*(y>>)%p*(1ll<<)%p;
ll as2 = x*(y&((<<)-))%p;
return (as1+as2)%p;
}
ll fastpow(ll x,ll y,ll p)
{
ll ret = 1ll;
while(y)
{
if(y&)ret=fastadd(ret,x,p);
x=fastadd(x,x,p);
y>>=;
}
return ret;
}
ll F2(ll y,ll z,ll p)
{
ll ret = fastpow(y,p-,p);
return fastadd(ret,z,p);
}
ll BSGS(ll y,ll z,ll p)
{
mp[]=;
ll now = ,m = (ll)sqrt(p);
for(int i=;i<=m;i++)
{
now=fastadd(now,y,p);
if(mp.find(now)==mp.end())
{
mp[now]=i;
}
}
ll u = ;
for(int i=;i<=m+;i++)
{
ll tmp = F2(u,z,p);
if(mp.find(tmp)!=mp.end())
{
return mp[tmp]+i*m;
}
u=fastadd(u,now,p);
}
}
int main()
{
scanf("%lld%lld",&k,&m);
k = (9ll*k+1ll)%m;
printf("%lld\n",BSGS(10ll,k,m));
return ;
}

最新文章

  1. 在SQL Server 2016里使用查询存储进行性能调优
  2. 数据库是.frm,.myd,myi备份如何导入mysql (转)
  3. Spark Streaming官方文档学习--上
  4. Python--关于dict
  5. 淮安团购网美团联盟网赚版 v5.7
  6. hdu 4559 涂色游戏(对SG函数的深入理解,推导打SG表)
  7. jquery判断邮箱格式问题
  8. 在SystemOut.log中发现HMGR0152W: 检测到CPU 饥饿的消息 &lt;转载&gt;
  9. ASIHttpRequest或者SDWebImage给UIImageView加载图片的逻辑是什么样子的
  10. python 学习之爬虫练习
  11. DGIM
  12. 【教你zencart仿站 文章1至6教训 高清1280x900视频下载】[支持手机端]
  13. 安装 zabbix 时遇到的一个问题
  14. angular.run和angular.config的区别
  15. jdk1.7 tomcat-7安装
  16. SPP-net原理解读
  17. java如何获取一个double的小数位数
  18. webservice 项目中遇到的问题
  19. C# 类的序列化和反序列化
  20. 配置nginx实现windows/iis应用负载均衡(转载)

热门文章

  1. SpringBoot入门-15(springboot配置freemarker使用YML)
  2. linux 查看进程和端口
  3. Dexposed:android免Root无侵入Aop框架
  4. 题解报告:poj 3061 Subsequence(前缀+二分or尺取法)
  5. Person p = new Person(&quot;zhangsan&quot;,20);该句话都做了什么事情?
  6. Css 基本的规则写法
  7. 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法
  8. MySQL+PHP配置 Windows系统IIS版
  9. zTree树形控件讲解
  10. MySQL DECIMAL数据类型