传送门

模数好大……__int128好麻烦……而且BSGS第一次写有点写蒙了……

$11...1(N个1)\equiv k(mod m)$很难算,那么考虑转化一下

先把$11...1(N个1)$写成$\frac{10^n-1}{9}$

则$$\frac{10^n-1}{9}\equiv k(mod m)$$

$$10^n-1\equiv k*9(mod m)$$

$$10^n\equiv k*9+1(mod m)$$

然后直接套上BSGS的板子

然后因为模数是long long级别的,所以要么用龟速乘,要么像我一样懒得只会用__int128了(记得手打输入输出)

 //minamoto
#include<bits/stdc++.h>
using namespace std;
#define int __int128
#define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
char buf[<<],*p1=buf,*p2=buf;
inline int read(){
#define num ch-'0'
char ch;bool flag=;int res;
while(!isdigit(ch=getc()))
(ch=='-')&&(flag=true);
for(res=num;isdigit(ch=getc());res=res*+num);
(flag)&&(res=-res);
#undef num
return res;
}
inline void print(int x) {
int sta[],top=;
while (x) sta[++top]=x%,x/=;
while (top) putchar(sta[top--]+'');
} inline int BSGS(int a,int b,int p){
map<int,int> mp;mp.clear();
b%=p;int t=sqrt((double)p)+,tot=;
for(int j=;j<t;++j){
int val=b*tot%p;
mp[val]=j,tot=tot*a%p;
}
if(!tot) return b==?:-;
a=tot,tot=;
for(int i=;i<=t;++i){
int j=mp.find(tot)==mp.end()?-:mp[tot];
if(j>=&&i*t-j>=) return i*t-j;
tot=tot*a%p;
}
return -;
}
signed main(){
// freopen("testdata.in","r",stdin);
int k=read(),m=read(),ans=BSGS(,(*k+)%m,m);
print(ans);
return ;
}

洛谷P4884 多少个1?(BSGS)的更多相关文章

  1. 洛谷 P4884 多少个1?

    题面在这里 好久没做题了2333,竟然还一次A了,神奇 大概就是等比数列然后把分母乘过去,然后直接BSGS就行了,就是要写快速乘恩... #include<bits/stdc++.h> # ...

  2. 洛谷$P4884$ 多少个1? 数论

    正解:$BSGS$ 解题报告: 传送门$QwQ$ 首先看到这个若干个一,发现不好表示,考虑两遍同时乘九加一,于是变成$10^n\equiv 9\cdot K+1(mod\ m)$ 昂然后不就是$bsg ...

  3. 【洛谷4884】多少个1?(BSGS)

    点此看题面 大致题意: 求满足\(个111...111(N\text{个}1)\equiv K(mod\ m)\)的最小\(N\). 题目来源 这题是洛谷某次极不良心的月赛的\(T1\),当时不会\( ...

  4. 【LGR-051】洛谷9月月赛

    [LGR-051]洛谷9月月赛 luogu 签到题 description 给出\(K\)和质数\(m\),求最小的\(N\)使得\(111....1\)(\(N\)个\(1\))\(\equiv k ...

  5. 洛谷 P5345: 【XR-1】快乐肥宅

    题目传送门:洛谷 P5345. 很荣幸为 X Round 1 贡献了自己的一题. 题意简述: 给定 \(n\) 组 \(k_i,g_i,r_i\)(\(0\le k_i,r_i<g_i\le 1 ...

  6. 洛谷1640 bzoj1854游戏 匈牙利就是又短又快

    bzoj炸了,靠离线版题目做了两道(过过样例什么的还是轻松的)但是交不了,正巧洛谷有个"大牛分站",就转回洛谷做题了 水题先行,一道傻逼匈牙利 其实本来的思路是搜索然后发现写出来类 ...

  7. 洛谷P1352 codevs1380 没有上司的舞会——S.B.S.

    没有上司的舞会  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond       题目描述 Description Ural大学有N个职员,编号为1~N.他们有 ...

  8. 洛谷P1108 低价购买[DP | LIS方案数]

    题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...

  9. 洛谷 P2701 [USACO5.3]巨大的牛棚Big Barn Label:二维数组前缀和 你够了 这次我用DP

    题目背景 (USACO 5.3.4) 题目描述 农夫约翰想要在他的正方形农场上建造一座正方形大牛棚.他讨厌在他的农场中砍树,想找一个能够让他在空旷无树的地方修建牛棚的地方.我们假定,他的农场划分成 N ...

随机推荐

  1. Xcode 6 的新增特性

    本文转载至 http://www.cocoachina.com/ios/20140823/9441.html (via:苹果开发者中心)   Xcode 6 引入了设计和构建软件的崭新方式.Swift ...

  2. mysql 中的增改查删(CRUD)

    增改查删可以用CURD来表示  增加:create  修改:update   查找:read      删除:delete 增加create :  insert +表名+values+(信息): in ...

  3. 【BZOJ3252】攻略 DFS序+线段树(模拟费用流)

    [BZOJ3252]攻略 Description 题目简述:树版[k取方格数] 众所周知,桂木桂马是攻略之神,开启攻略之神模式后,他可以同时攻略k部游戏. 今天他得到了一款新游戏<XX半岛> ...

  4. [洛谷P3941] 入阵曲

    题目背景 丹青千秋酿,一醉解愁肠. 无悔少年枉,只愿壮志狂. 入阵曲 题解在代码里. #include<iostream> #include<cstdio> #include& ...

  5. Linux就该这么学--命令集合2(系统状态检测命令)

    1.查看本机当前的网卡配置与网络状态等信息:(ifconfig [网络设备] [参数]) ifconfig 2.查看系统的内核名称.内核发行版.内核版本.节点名.硬件名称.硬件平台.处理器类型.操作系 ...

  6. Hibernate ManyToOne Mappings 多对一关联映射

    Hibernate ManyToOne Mappings 多对一关联映射 Hibernate框架的使用步骤: 1.创建Hibernate的配置文件(hibernate.cfg.xml)2.创建持久化类 ...

  7. ABAP抓取异常 try ,endtry.

    DATA: O_CX TYPE REF TO CX_ROOT. TRY . MOVE LS_UPLOAD-MENGE TO LS_OUTPUT-MENGE. CATCH CX_ROOT INTO O_ ...

  8. Android junit4 单元测试 cant open database错误 获取context上下文问题

    Context context = getInstrumentation().getTargetContext()这样就能在data/data/包/databases下找到数据库文件了 public ...

  9. SpringSecurity加密Salt

    Spring Security 加密,默认加salt的输出为:password{salt};然后再对这个加salt后的密码加密存储. 源码如下: protected String mergePassw ...

  10. (linux)BSP板级支持包开发理解

    1. 概述 嵌入式系统由硬件环境.嵌入式操作系统和应用程序组成,硬件环境是操作系统和应用程序运行的硬件平台,它随应用的不同而有不同的要求.硬件平台的多样性是嵌入式系统的主要特点,如何使嵌入式操作系统在 ...