1. 程式人生 > >【XSY2523】神社閉店之日 莫比烏斯反演

【XSY2523】神社閉店之日 莫比烏斯反演

題目大意

  給你a1an,l,c每次給你x,y,求有多少個序列滿足:長度l,每個元素是[1,c],迴圈右移aj(xjy)次後和原序列相同。

  n,q100000,l,c109,lcm(a1,an)1013

題解

  顯然只有右移gcd(ax,ax+1,,ay)次後和原序列相同才滿足條件。

  先求出s=gcd(ax,ax+1,,ay)

  列舉長度i,答案ans

i=1lcgcd(i,s)
  先進行簡單的莫比烏斯反演:
ans=i=1lcgcd(i,s)=d|scdi=1l[gcd(i,s)=d]=d|scdi=1ld[gcd(i,sd)=1]=
d|scdi|sdμ(i)lid

  根據套路,我們要列舉j=id
ans=j|slji|jμ(i)cji
  記f(i)=j|iμ(j)cij,發現f(i)s無關,所以可以先把所有f(i)預處理出來,每次直接列舉s的因子計算。

  注意到這題很有一個性質:所有ai的lcm1013,那麼s一定是lcm的因子。1013的數最多有10752個因子,可以先把這些因子求出來,做一波2的DP,詢問時查表。

  時間複雜度:O(2+qlognloga)

程式碼

#include<cstdio>
#include<cstring>
#include<algorithm> #include<cstdlib> #include<ctime> #include<utility> #include<cmath> #include<functional> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<int,int> pii;

相關推薦

XSY2523

題目大意   給你a1…an,l,c每次給你x,y,求有多少個序列滿足:長度≤l,每個元素是[1,c],迴圈右移aj(x≤j≤y)次後和原序列相同。   n,q≤100000,l,c≤109,lcm(a1,…an)≤1013 題解   顯然只有右移g

BZOJ4815[CQOI2017]小Q的表格(,分塊)

【BZOJ4815】[CQOI2017]小Q的表格(莫比烏斯反演,分塊) 題面 BZOJ 洛谷 題解 神仙題啊。 首先\(f(a,b)=f(b,a)\)告訴我們矩陣只要算一半就好了。 接下來是\(b*f(a,a+b)=(a+b)*f(a,b)\) 這個式子怎麼看呢? \[\begin{aligned}

BZOJ4652: [Noi2016]迴圈美(,杜教篩)

Description 牛牛是一個熱愛演算法設計的高中生。在他設計的演算法中,常常會使用帶小數的數進行計算。牛牛認為,如果在 k  進位制下,一個數的小數部分是純迴圈的,那麼它就是美的。現在,牛牛想知道:對於已知的十進位制數 n 和 m,在  kk

NOI 2016 循環美 (+杜教篩)

tar main 說明 pan == amp loj 個數 efi 題目大意:略 洛谷傳送門 鑒於洛谷最近總崩,附上良心LOJ鏈接 任何形容詞也不夠贊美這一道神題 $\sum\limits_{i=1}^{N}\sum\limits_{j=1}^{M}[gcd(i,

組合數學五 ——

前言: 新年第一個工作日,為什麼這麼頹這麼困。。。 學長退役的時候,曾經問過我:你們都知道我們的blog嗎 我表示Of course 今天在網上翻到了abclzr的blog 想當年莫比烏斯反演是TA爺給學長們講的 雖然聽過天宇哥哥,姜爺和丁隊的課,然

bzoj 4407: 於怒加強版+線性篩

isp space names bre esp clas ios getch [1] 看著就像反演,所以先推式子(默認n<m): \[ \sum_{d=1}^{n}d^k\sum_{i=1}^n\sum_{j=1}^m[gcd(i,j)==d] \] \[ =\sum

BZOJ2301problem b,數論

Time:2016.05.27 Author:xiaoyimi 轉載註明出處謝謝 傳送門 思路: ∑di=c∑bj=a[gcd(i,j)=k] =∑di=1∑bj=1[gcd(i,j)

bzoj4176Lucas的數論 +杜教篩

wid eight 前綴 .html != brush name load ans 題目描述 去年的Lucas非常喜歡數論題,但是一年以後的Lucas卻不那麽喜歡了。 在整理以前的試題時,發現了這樣一道題目“求Sigma(f(i)),其中1<=i<

BZOJ2045雙親數

namespace 一個 ron == true pac 公約數 ostream 都是 【BZOJ2045】雙親數 Description 小D是一名數學愛好者,他對數字的著迷到了瘋狂的程度。 我們以d = gcd(a, b)表示a、b的最大公約數,小D執著的認為,這樣

bzoj2154Crash的數字表格

name ros -1 led idt 莫比烏斯 style efi con 題目描述 今天的數學課上,Crash小朋友學習了最小公倍數(Least Common Multiple)。對於兩個正整數a和b,LCM(a, b)表示能同時被a和b整除的最小正整數。例如,LCM

bzoj3309DZY Loves Math +線性篩

例如 一行 根據 優化 long long ast 以及 -1 變化 題目描述 對於正整數x,定義f(x)為x所含質因子的最大冪指數。例如f(1960)=f(2^3 * 5^1 * 7^2)=3, f(10007)=1, f(1)=0。給定正整數n,m,求$\sum\li

bzoj 4176 Lucas的數論 (杜教篩)

amp short last ++ esc output sig blog tro Description 去年的Lucas非常喜歡數論題,但是一年以後的Lucas卻不那麽喜歡了。 在整理以前的試題時,發現了這樣一道題目“求Sigma(f(i)),其中1&l

Troywar love Maths——

pen 輸出格式 targe div -h prim 沒有 .cn color           2816. Troywar loves Maths                 ★★☆ 輸入文件:Troy_1.in 輸出文件:Troy_1.out 簡單對

——蒟蒻的理解

col oid eps div 約數個數 符號 並且 sil 線性篩   序:最近被反演虐的不要不要的,遂決定寫一篇博文,防止以後自己翻車…… 1.定義   莫比烏斯函數:$\mu(n)$ $\begin{cases} & \tex

HDU1695GCD(

重復 min put clas 題解 iostream fine har clu 【HDU1695】GCD(莫比烏斯反演) 題面 題目大意 求\(a<=x<=b,c<=y<=d\) 且\(gcd(x,y)=k\)的無序數對的個數 其中,你可以假定\(

Luogu3455POI2007ZAP-Queries(

stream bre 似的 string 獲得 計算 getc ans contain 【Luogu3455】【POI2007】ZAP-Queries(莫比烏斯反演) 題面 題目描述 FGD正在破解一段密碼,他需要回答很多類似的問題:對於給定的整數a,b和d,有多少正整數對

CF900DUnusual Sequences 容斥(

div blog mic names include sin 題意 方案 ace 【CF900D】Unusual Sequences 題意:定義正整數序列$a_1,a_2...a_n$是合法的,當且僅當$gcd(a_1,a_2...a_n)=x$且$a_1+a_2+...

bzoj2301[HAOI2011]Problem b

== define sum ostream namespace char lin iostream get Description 對於給出的n個詢問,每次求有多少個數對(x,y),滿足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x

bzoj2820YY的GCD

spa tex 給定 void fin include ans iostream while YY的GCD Description 神犇YY虐完數論後給傻×kAc出了一題 給定N, M,求1<=x<=N, 1<=y<=M且g

51nod 1222 最小公倍數計數

tdi .html blog pri using ret n) can code 參考:https://www.cnblogs.com/SilverNebula/p/7045199.html 所是反演其實反演作用不大,又是一道做起來感覺詭異的題 轉成前綴和相減的形式 \[