BZOJ-2820: YY的GCD(莫比烏斯反演+分塊)

題目:http://www.lydsy.com/JudgeOnline/problem.php?id=2820

這幾天狀態(tài)一直不太好具练,刷幾道裸的數(shù)據(jù)結(jié)構(gòu)都被虐成渣豹芯,于是乎就滾過來寫數(shù)論題了,順便發(fā)發(fā)題解攢RP心肪,順便GDKOI求輕虐费就。润文。禾进。QaQ

思路(之前暴力枚舉質(zhì)數(shù)的我真是傻X):


42166d224f4a20a401d7f88092529822730ed0a8.jpg.png

然后豁跑,我們就用前綴和來維護(hù)h(x),用篩法預(yù)處理h(x),u(x),用分塊的方法處理[n/x][m/x],那么就可以做到O( t sqrt( n ) )的復(fù)雜度,可以AC此題啦~(u(x)表示莫比烏斯函數(shù))

代碼:

#include <cstdio>

#include <algorithm>
#include <cstring>
 
using namespace std ;
 
#define MAXN 10001000
#define MAXP 1000010
#define ll long long
#define Sum( l , r ) ( sum[ r ] - sum[ l - 1 ] )
#define MAXT 10010
 
bool f[ MAXN ] ;
ll u[ MAXN ] , h[ MAXN ] , p[ MAXP ] , pn , sum[ MAXN ] , maxn , tot , q[ MAXT ][ 2 ] ;
 
void Init(  ) {
    maxn = 0 ;
    scanf( "%lld" , &tot ) ;
    for ( int i = 0 ; i ++ < tot ; ) {
        scanf( "%lld%lld" , &q[ i ][ 0 ] , &q[ i ][ 1 ] ) ;
        maxn = max( maxn , max( q[ i ][ 0 ] , q[ i ][ 1 ] ) ) ;
    }
    for ( int i = 0 ; i <= maxn ; ++ i ) f[ i ] = true , u[ i ] = h[ i ] = 0 ;
    pn = 0 ;
    f[ 1 ] = f[ 0 ] = false , u[ 1 ] = 1 ;
    for ( int i = 1 ; i ++ < maxn ; ) if ( f[ i ] ) {
        p[ ++ pn ] = i , u[ i ] = - 1 ;
        for ( int j = i << 1 ; j <= maxn ; j += i ) {
            if ( ( j / i ) % i ) {
                u[ j ] = u[ j / i ] * ( - 1 ) ;
            } else {
                u[ j ] = 0 ;
            }
            f[ j ] = false ;
        }
    }
    for ( int i = 0 ; i ++ < maxn ; ) {
        for ( int j = 1 ; j <= pn && i * p[ j ] <= maxn ; ++ j ) {
            h[ i * p[ j ] ] += u[ i ] ;
        }
    }
    sum[ 0 ] = 0 ;
    for ( int i = 0 ; i ++ < maxn ; ) sum[ i ] = sum[ i - 1 ] + h[ i ] ;
}
 
ll query( int n , int m ) {
    ll ans = 0 ;
    for ( int i = 1 ; i <= min( n , m ) ; ) {
        int pos = min( n / ( n / i ) , m / ( m / i ) ) ;
        ans += Sum( i , pos ) * ( ll )( n / i ) * ( ll )( m / i ) ;
        i = pos + 1 ;
    }
    return ans ;
}
 
int main(  ) {
    Init(  ) ;
    for ( ll i = 0 ; i ++ < tot ; ) {
        printf( "%lld\n" , query( q[ i ][ 0 ] , q[ i ][ 1 ] ) ) ;
    }
    return 0 ;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末泻云,一起剝皮案震驚了整個(gè)濱河市艇拍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌壶愤,老刑警劉巖淑倾,帶你破解...
    沈念sama閱讀 216,919評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件馏鹤,死亡現(xiàn)場(chǎng)離奇詭異征椒,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)湃累,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,567評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門勃救,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人治力,你說我怎么就攤上這事蒙秒。” “怎么了宵统?”我有些...
    開封第一講書人閱讀 163,316評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵晕讲,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng)瓢省,這世上最難降的妖魔是什么弄息? 我笑而不...
    開封第一講書人閱讀 58,294評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮勤婚,結(jié)果婚禮上摹量,老公的妹妹穿的比我還像新娘。我一直安慰自己馒胆,他們只是感情好缨称,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,318評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著祝迂,像睡著了一般睦尽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上型雳,一...
    開封第一講書人閱讀 51,245評(píng)論 1 299
  • 那天骂删,我揣著相機(jī)與錄音,去河邊找鬼四啰。 笑死宁玫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的柑晒。 我是一名探鬼主播欧瘪,決...
    沈念sama閱讀 40,120評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼匙赞!你這毒婦竟也來了佛掖?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,964評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤涌庭,失蹤者是張志新(化名)和其女友劉穎芥被,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坐榆,經(jīng)...
    沈念sama閱讀 45,376評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡拴魄,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,592評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了席镀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匹中。...
    茶點(diǎn)故事閱讀 39,764評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖豪诲,靈堂內(nèi)的尸體忽然破棺而出顶捷,到底是詐尸還是另有隱情,我是刑警寧澤屎篱,帶...
    沈念sama閱讀 35,460評(píng)論 5 344
  • 正文 年R本政府宣布服赎,位于F島的核電站葵蒂,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏重虑。R本人自食惡果不足惜刹勃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,070評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嚎尤。 院中可真熱鬧荔仁,春花似錦、人聲如沸芽死。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,697評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽关贵。三九已至遇骑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間揖曾,已是汗流浹背落萎。 一陣腳步聲響...
    開封第一講書人閱讀 32,846評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留炭剪,地道東北人练链。 一個(gè)月前我還...
    沈念sama閱讀 47,819評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像奴拦,于是被迫代替她去往敵國(guó)和親媒鼓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,665評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 學(xué)一點(diǎn)有趣的數(shù)論知識(shí) 在探究RSA算法的原理之前错妖,我們先來學(xué)習(xí)一點(diǎn)有趣的數(shù)論知識(shí)(數(shù)學(xué)分支之一绿鸣,主要研究整數(shù)的性質(zhì)...
    24f464006eaf閱讀 2,168評(píng)論 0 5
  • 提示:別用莫比烏斯反演公式,會(huì)炸的 只需要記自萋取: [gcd(i,j)=1]=\sum_{d|gcd(i,j)}\m...
    An_Account閱讀 1,908評(píng)論 0 0
  • 【程序1】 題目:古典問題:有一對(duì)兔子潮模,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔...
    葉總韓閱讀 5,134評(píng)論 0 41
  • 1.創(chuàng)建下載模型TNDownloadModel 2.下載事件響應(yīng)
    紅姑娘閱讀 5,390評(píng)論 0 6
  • 今天是祖國(guó)母親的第六十九個(gè)生日 起床:六點(diǎn)多就醒了痴施,一只在賴床擎厢,挨到八點(diǎn)多。 就寢:寫完簡(jiǎn)書就睡呀晾剖! 天氣:多云 ...
    小刺猬的風(fēng)雅閱讀 220評(píng)論 2 0