Uva12716 GCD XOR 亂搞
Description
求
i=1∑nj=1∑n[gcd(i,j)=i⊕j]
其中那個符號是按位異或
n<=1e6
Solution
我們欽定
a>b
首先證明
gcd(a,b)≤a−b
gcd(a,b)=gcd(b,a−b)≤a−b,由輾轉相減可知等式成立,且a和b的約數不大於min(a,b)
然後有
a⊕b≥a−b
我們把
a中是0且
b中是1的位置交換,記為
a′和
b′
有
a′⊕b′=a′−b′=a⊕b
然後就可以發現
a⊕b=a′−b′≥a−b是成立的
綜合一下看可以發現
gcd(a,b)=a⊕b=a−b
令
c=a−b,有
gcd(a,b)=gcd(b,a−b)=a⊕b
然後套c進去有
gcd(b,c)=c,於是我們列舉c,列舉c的倍數就可以nlogn做了
Code
口胡題解不寫程式碼
相關推薦
Uva12716 GCD XOR 亂搞
Description 求 ∑ i
UVA12716 GCD XOR(枚舉)
-i eno 可能 void bitset any can 1.0 desc UVA12716 GCD XOR Description Given an integer N, find how many pairs (A, B) are there such that: g
UVA12716 GCD XOR
題意翻譯 輸入資料組數t,接下來t行每行給定一個數字n,如樣例所示格式輸出滿足1<=b<=a<=n且gcd(a,b)==a xor b的(a,b)二元組個數。 translated by @AdzearDisjudge 題目描述 PDF 輸入輸出格式 輸入格式:  
UVA12716 GCD XOR 數論數學構造
sizeof detail lease release 模仿 tdi 後來 lin 打了 版權聲明:本文為博主原創文章,
【BZOJ4052】[Cerc2013]Magical GCD 亂搞
cnblogs cpp name 直接 bzoj4052 scrip des ons ostream 【BZOJ4052】[Cerc2013]Magical GCD Description 給出一個長度在 100 000 以內的正整數序列,大小不超過 10^12。
[亂搞]斐波那契數列與gcd之間一個有趣的定理
求證 gcd(Fn,Fm)=Fgcd(n,m) 其中 F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2) (n>1) 證明 聽說這是一個非常有用的定理,那麼就來隨便證(lua
Codeforces Amr and Chemistry(數學+亂搞)
span 回來 記錄 -s stack pre inpu cto .... 題意:給n個數。每一個數每次能夠乘二或除以二(向下取整相當於左移或右移),問最少經過多少次操作能夠使這n個數變相等。 思路:首先考慮每一個數的可能取值,將一個數表示成s*2^k的形式。s是奇數。
UVa 12716 GCD XOR (簡單證明)
i++ map esp typedef -a type print const max 題意: 問 gcd(i,j) = i ^ j 的對數(j <=i <= N ) N的範圍為30000000,有10000組例子 思路:GCD(a,b) = a^b =
BZOJ 4216 Pig 分塊亂搞
ces strong ng- clu sin 方法 dsm cstring parent 題意:id=4216">鏈接 方法:分塊以節約空間。 解析: 這題坑的地方就是他僅僅有3M的內存限制,假設我們開longlong前綴和是必死的。
【BZOJ4917】Hash Killer IV 亂搞
input inline 數據 line ans style %d bsp zoj 【BZOJ4917】Hash Killer IV Description 有一天,tangjz造了一個Hash函數: unsigned int Hash(unsigned int
【BZOJ1811】[Ioi2005]mea 亂搞
sof turn span getchar() 例如 -1 個數 結果 des 【BZOJ1811】[Ioi2005]mea Description 考慮一個非遞減的整數序列 S1,....Sn+1(Si<=Si+1 1<=i<=n)。 序列M1...
【BZOJ】2456 mode(亂搞)
出現 include con ont num print ros most 空格 Description 給你一個n個數的數列,其中某個數出現了超過n div 2次即眾數,請你找出那個數。 Input 第1行一個正整數n。第2行n個正整數用空格隔開。
【bzoj5060】魔方國 亂搞+特判
區間 覆蓋 ros else pri %d ret tdi -m 題目描述 一張未知的有重邊無自環的圖,只知道點數為n,邊數為m。可以標記若幹個點,如果一個點被標記,那麽與它距離不超過k的點(包括本身)都會被覆蓋。 顯然對於每張不同圖,讓所有點被覆蓋的最小代價是不一樣的
【亂搞/分治】【最短路】【線段樹】Day 10.24
tdi prior 做的 continue void 之間 sizeof queue oid 1、斜率 可以證明如果兩點之間還有一點的話那麽原來的兩個點連線一定不會是最大斜率 然後我就寫了個沙茶分治………… 其實根據上面的推論只用枚舉相鄰的兩個點,掃一遍就可以了 1 #
【BZOJ2217】[Poi2011]Lollipop 亂搞
getch 記錄 spa style using 子序列 ++ brush highlight 【BZOJ2217】[Poi2011]Lollipop Description 有一個長度為n的序列a1,a2,...,an。其中ai要麽是1("W"),要麽是2("T"
【bzoj5108】[CodePlus2017]可做題 拆位+亂搞
答案 names cstring for per 直接 color min 異或 題目描述 給出一個長度為 $m$ 的序列 $a$ ,編號為 $a_1\sim a_m$,其中 $n$ 個位置的數已經確定,剩下的位置的數可以任意指定。現在令 $b$ 表示 $a$ 的前綴異或
【CF886D】Restoration of string 亂搞
ios scanf style == pan name 題解 cst span 【CF886D】Restoration of string 題意:對於給定的一個母串,定義一個字符串是出現頻率最多的,當且僅當它在母串中出現的次數最多(可以有多個出現次數最多的,出現的位置可以
Codeforces Round #445 div.2 D. Restoration of string 亂搞
als com bool ack round tin res 暴力 c++ D. Restoration of string 題意:給你n個字符串,讓你構造一個終串,使得這n個字符串都是終串的最小頻繁子串,如果不存在輸出NO。 最頻繁子串:出現次數最多的子串 tags
[USACO08OCT]牧場散步Pasture Walking (LCA) (亂搞)
getchar() 亂搞 body usaco next show org clas bits 題面傳送門我太懶了所以吃掉題面 題解 可以發現如果兩點不在一條鏈上的話,那麽他們的最短路徑一定會經過LCA。 所以可以維護一下每個點到樹根的距離,然後大力前綴和亂搞就好了。 #i
bzoj1800: [Ahoi2009]fly 飛行棋(亂搞)
style sin bzoj str get ati urn 什麽 bsp 1800: [Ahoi2009]fly 飛行棋 題目:傳送門 題解: 大水題,早上簽個到 沒什麽好說的...搞個前綴和,算個周長... 周長為奇數肯定誤解啊廢話QW