正题

题目链接:https://www.luogu.com.cn/problem/P4884


题目大意

求一个最小的nnn使得nnn个连续的111其在模mmm意义下等于kkk。

6≤m≤1011,0<k<m6\leq m\leq 10^{11},0<k<m6≤m≤1011,0<k<m


解题思路

补一道老题

nnn个连续的111就是10n−19\frac{10^n-1}{9}910n−1​所以题目是求
10n−19≡k(modm)\frac{10^n-1}{9}\equiv k(mod\ m)910n−1​≡k(mod m)
⇒10n≡9k+1(modm)\Rightarrow 10^n\equiv 9k+1(mod\ m)⇒10n≡9k+1(mod m)
然后BSGS\text{BSGS}BSGS就好了

要开__int128\text{\_\_int128}__int128


code

#include<cstdio>
#include<cmath>
#include<map>
#include<cctype>
#define ll __int128
using namespace std;
ll read(){ll x=0,f=1;char c=getchar();while(!isdigit(c)){if(c=='-')f=-f;c=getchar();}while(isdigit(c)){x=(x<<1)+(x<<3)+c-'0';c=getchar();}return x*f;
}
void print(ll x)
{if(x>9)print(x/10);putchar(48+x%10);return;}
ll k,m,a;
map<ll,ll> hash;
int main()
{k=read();m=read();k=(k*9+1)%m;ll q=(ll)sqrt((double)m)+1;ll val=1;for(ll j=0;j<q;j++){hash[val*k%m]=j;val=val*10%m;}a=val%m;if(!a) {printf("%d",(m==0)?1:-1);return 0;}val=1;for(ll i=0;i<=q;i++){ll j=hash.find(val)==hash.end()?-1:hash[val];if(j>=0&&i*q-j>=0) {print(i*q-j);return 0;}val=val*a%m;}printf("-1");
}

P4884-多少个1?【BSGS】相关推荐

  1. 浅谈BSGS和EXBSGS

    我的 BSGS 和各位犇犇的差不多,但是不需要求逆元 Luogu [ TJOI2007 ] 可爱的质数 原题展现 题目描述 给定一个质数 \(p\),以及一个整数 \(b\),一个整数 \(n\),现 ...

  2. 2019 ICPC全国邀请赛(西安)I. Cracking Password(序列检验,BSGS,细节题)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 2019 ICPC全国邀请赛(西安)I. Cracking Password Weblink http ...

  3. luogu P3306 [SDOI2013] 随机数生成器(BSGS,数列求通项,毒瘤特判)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 发个水题的 题解证明我还在() luogu P3306 [SDOI2013] 随机数生成器 Webli ...

  4. BSGS扩展BSGS

    BSGS 给定\(a,b,p\),求\(x\)使得\(a^x\equiv b \pmod p\),或者说明不存在\(x\) 只能求\(\gcd(a,p)=1\)的情况 有一个结论:如果有解则必然存在\ ...

  5. 【bzoj2242】[SDOI2011]计算器 EXgcd+BSGS

    题目描述 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数: 3.给定y,z,p, ...

  6. 离散对数(同余理论-BSGS算法)

    用来求解如下同余方程x的最小正整数解:                           p为质数,a.b.p已知,且 (如果a.b大于p,则对他们取模) 模板:(p为素数) /********** ...

  7. Codeforces 1106F Lunar New Year and a Recursive Sequence (数学、线性代数、线性递推、数论、BSGS、扩展欧几里得算法)...

    Codeforces 1106F Lunar New Year and a Recursive Sequence (数学.线性代数.线性递推.数论.BSGS.扩展欧几里得算法) 哎呀大水题..我写了一 ...

  8. Codeforces 1106F Lunar New Year and a Recursive Sequence (线性代数、线性递推、数论、BSGS、扩展欧几里得算法)...

    哎呀大水题..我写了一个多小时..好没救啊.. 数论板子X合一? 注意: 本文中变量名称区分大小写. 题意: 给一个\(n\)阶递推序列\(f_k=\prod^{n}_{i=1} f_{k-i}^{b ...

  9. POJ2417 Discrete Logging | A,C互质的bsgs算法

    题目: 给出A,B,C 求最小的x使得Ax=B  (mod C) 题解: bsgs算法的模板题 bsgs 全称:Baby-step giant-step 把这种问题的规模降低到了sqrt(n)级别 首 ...

最新文章

  1. SQL-PL/SQL基础
  2. poj1330|bzoj3732|noip2013 货车运输 kruskal+倍增lca
  3. JDBC-连接数据库代码
  4. python CV2裁剪图片并保存
  5. 使用tar进行磁带备份的命令汇总
  6. Flex4 Skinning 1: 自定义一个简单按钮的皮肤
  7. yum命令报错 yum update File /usr/bin/yum, line 30 except KeyboardInterrupt, e: --CentOS7.5
  8. sublime text3 python找不到文件路径_如何在sublime3 项目设置中设置 python 解释器的路径?...
  9. C语言w10输入法打不出中文,win10系统输不了中文怎么办
  10. DNSObserver检测DNS安全漏洞
  11. 用来向服务器发送邮件的协议是,电子邮件协议中用于发送邮件的协议是
  12. fastlane:构建、测试和发布 React Native 应用程序
  13. 捋一捋DDR内存相关的各种频率
  14. php orm中关联查询,【整理】Laravel中Eloquent ORM 关联关系的操作
  15. 心理学 | (1)焦虑症和恐惧症--一种认知的观点
  16. centos 7 iso u盘安装_服务器系统CentOS安装教程
  17. 华东理工大学matlab怎么下载,华东理工大学MATLAB.ppt
  18. 西门子plc视频教程
  19. leaflet 降雨等值面的动画效果
  20. 400亿巨量资金恐慌出逃

热门文章

  1. java后台传一个对象到前台_前台判断对象中的一个布尔值_springMVC面试题
  2. mysql安装配置yum_在CentOS 7下使用yum配置MySQL源并安装MySQL
  3. python新手入门项目推荐_推荐:一个适合于Python新手的入门练手项目
  4. access 战地1不加入ea_炒牛肉时,想要牛肉嫩滑又不老,只需加入1样东西,很多人都不懂...
  5. 网站底部运行时间的php代码,网站底部运行时间统计代码
  6. java实用教程——组件及事件处理——处理事件
  7. 7-5 流水作业调度 (10 分)(思路+详解+johnson解析)Come Baby!!!!!!!!!!
  8. C++ 学习之旅(16)——虚函数与纯虚函数virtual
  9. 数据结构-树:根节点、子节点、叶子节点是什么?
  10. 二叉树的存储结构及四种遍历(C语言)