P4884-多少个1?【BSGS】
正题
题目链接: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】相关推荐
- 浅谈BSGS和EXBSGS
我的 BSGS 和各位犇犇的差不多,但是不需要求逆元 Luogu [ TJOI2007 ] 可爱的质数 原题展现 题目描述 给定一个质数 \(p\),以及一个整数 \(b\),一个整数 \(n\),现 ...
- 2019 ICPC全国邀请赛(西安)I. Cracking Password(序列检验,BSGS,细节题)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 2019 ICPC全国邀请赛(西安)I. Cracking Password Weblink http ...
- luogu P3306 [SDOI2013] 随机数生成器(BSGS,数列求通项,毒瘤特判)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 发个水题的 题解证明我还在() luogu P3306 [SDOI2013] 随机数生成器 Webli ...
- BSGS扩展BSGS
BSGS 给定\(a,b,p\),求\(x\)使得\(a^x\equiv b \pmod p\),或者说明不存在\(x\) 只能求\(\gcd(a,p)=1\)的情况 有一个结论:如果有解则必然存在\ ...
- 【bzoj2242】[SDOI2011]计算器 EXgcd+BSGS
题目描述 你被要求设计一个计算器完成以下三项任务: 1.给定y,z,p,计算Y^Z Mod P 的值: 2.给定y,z,p,计算满足xy≡ Z ( mod P )的最小非负整数: 3.给定y,z,p, ...
- 离散对数(同余理论-BSGS算法)
用来求解如下同余方程x的最小正整数解: p为质数,a.b.p已知,且 (如果a.b大于p,则对他们取模) 模板:(p为素数) /********** ...
- Codeforces 1106F Lunar New Year and a Recursive Sequence (数学、线性代数、线性递推、数论、BSGS、扩展欧几里得算法)...
Codeforces 1106F Lunar New Year and a Recursive Sequence (数学.线性代数.线性递推.数论.BSGS.扩展欧几里得算法) 哎呀大水题..我写了一 ...
- Codeforces 1106F Lunar New Year and a Recursive Sequence (线性代数、线性递推、数论、BSGS、扩展欧几里得算法)...
哎呀大水题..我写了一个多小时..好没救啊.. 数论板子X合一? 注意: 本文中变量名称区分大小写. 题意: 给一个\(n\)阶递推序列\(f_k=\prod^{n}_{i=1} f_{k-i}^{b ...
- POJ2417 Discrete Logging | A,C互质的bsgs算法
题目: 给出A,B,C 求最小的x使得Ax=B (mod C) 题解: bsgs算法的模板题 bsgs 全称:Baby-step giant-step 把这种问题的规模降低到了sqrt(n)级别 首 ...
最新文章
- SQL-PL/SQL基础
- poj1330|bzoj3732|noip2013 货车运输 kruskal+倍增lca
- JDBC-连接数据库代码
- python CV2裁剪图片并保存
- 使用tar进行磁带备份的命令汇总
- Flex4 Skinning 1: 自定义一个简单按钮的皮肤
- yum命令报错 yum update File /usr/bin/yum, line 30 except KeyboardInterrupt, e: --CentOS7.5
- sublime text3 python找不到文件路径_如何在sublime3 项目设置中设置 python 解释器的路径?...
- C语言w10输入法打不出中文,win10系统输不了中文怎么办
- DNSObserver检测DNS安全漏洞
- 用来向服务器发送邮件的协议是,电子邮件协议中用于发送邮件的协议是
- fastlane:构建、测试和发布 React Native 应用程序
- 捋一捋DDR内存相关的各种频率
- php orm中关联查询,【整理】Laravel中Eloquent ORM 关联关系的操作
- 心理学 | (1)焦虑症和恐惧症--一种认知的观点
- centos 7 iso u盘安装_服务器系统CentOS安装教程
- 华东理工大学matlab怎么下载,华东理工大学MATLAB.ppt
- 西门子plc视频教程
- leaflet 降雨等值面的动画效果
- 400亿巨量资金恐慌出逃
热门文章
- java后台传一个对象到前台_前台判断对象中的一个布尔值_springMVC面试题
- mysql安装配置yum_在CentOS 7下使用yum配置MySQL源并安装MySQL
- python新手入门项目推荐_推荐:一个适合于Python新手的入门练手项目
- access 战地1不加入ea_炒牛肉时,想要牛肉嫩滑又不老,只需加入1样东西,很多人都不懂...
- 网站底部运行时间的php代码,网站底部运行时间统计代码
- java实用教程——组件及事件处理——处理事件
- 7-5 流水作业调度 (10 分)(思路+详解+johnson解析)Come Baby!!!!!!!!!!
- C++ 学习之旅(16)——虚函数与纯虚函数virtual
- 数据结构-树:根节点、子节点、叶子节点是什么?
- 二叉树的存储结构及四种遍历(C语言)