洛谷P4884 多少個1?

2021-09-24 01:46:15 字數 1696 閱讀 6959

d es

crip

toin

descriptoin

descri

ptoi

n 求多少個1連在一起mod

m=

kmod\ m=k

modm=k

資料範圍:

0 ≤k

10

110\leq k0≤

k1011so

luti

on

solution

soluti

on問題等價於10n

−19≡

k(mo

dm

)\frac9\equiv k(mod\ m)

910n−1

​≡k(

modm

) 兩邊乘9【資料沒卡,但其實是不完全成立的,如果資料卡你的話得用 exb

sg

sexbsgs

exbsgs

】,得到10n

−1≡9

k(mo

dm

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

10n−1≡

9k(m

odm)

移項1 0n

≡9k+

1(mo

dm

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

10n≡9k

+1(m

odm)

套板子即可

80分雜湊**(不知道哪錯了,就大佬斧正)

#include

#include

#include

#define ll long long

using

namespace std;ll m,k;

struct hash

inline

intfind

(ll x)

inline

void

push

(ll x,ll num)

inline

intinit

(ll x)

#undef p

}h;inline ll ksc

(ll a,ll b,ll p)

inline ll ksm

(ll x,ll y,ll p)

inline ll bsgs

(ll a,ll b,ll p)

return-1

;}signed

main()

accod

ecode

code

#include

#include

#include

#include

#define ll long long

using

namespace std;ll m,k;

inline ll ksc

(ll a,ll b,ll p)

else

return a*b%p;

}inline ll ksm

(ll x,ll y,ll p)

inline ll bsgs

(ll a,ll b,ll p)

return-1

;}signed

main()

洛谷 多少個1?(BSGS)

給定整數kk和質數mm,求最小的正整數nn,使得 11 cdots111 1 n個1 equiv k pmod m k modm 說人話 就是 111.1111 mod m k 輸入格式 第一行兩個整數,分別表示kk和mm 輸出格式 乙個整數,表示符合條件最小的nn 輸入樣例 1 複製 9 17輸出...

XTU OJ 迴圈3 有多少個1?

計算機中儲存的整數都是按補碼的型式,乙個32位有符號整數的補碼的定義為 如果x 0,則x的補碼等於x的二進位制表示 如果x 0,那麼x的補碼為2 32 x的二進位制表示。請根據給定的整數,求出它的補碼包含有多少位為1。輸入每行乙個樣例,為乙個整數 可以用int表示 輸出每行輸出乙個對應樣例的結果。s...

1 n中有多少個9

首先我們先來分析一下題目的意思 1 n中有多少個9,什麼意思呢,舉個例子 1 100中有多少個9,大家肯定一下子就會覺得簡單啊,直接對所有數取模10等於9的不就是嘛。仔細分析一下,這麼想對嗎?很明顯不對啊,90 91 92 這些除個位之外其它位上也可能有9,所以正確的是將各位上的9數一下即為正解。那...