除法分塊—因數貢獻度
於是我們得到的這一個區間的每個因數的數量都是 (n/l)
這些因數有哪些呢? 當然就是 l−rl−r 裡頭這些啦 然後很顯然這些因數構成了一個等差數列, 單對於這一區間因數來說, 其和為 (l+r)∗(r−l+1)/2(l+r)∗(r−l+1)/2 每個因數有 (n/l)(n/l) 個, 所以這一區間對答案的貢獻為 (n/l)∗(l+r)∗(r−l+1)/2
#include <iostream> using namespace std; typedef unsigned long long ll; ll check(ll x) { ll ans=0; for(ll i=1,j; i<=x;i=j+1) { j=x/(x/i); ans+=(i+j)*(j-i+1)*(x/i)/2; } return ans; } int main() { ll a,b; while(cin>>a>>b) cout<<check(b)-check(a-1)<<endl; return 0; }
unsigned 無符號型別,既沒有負號,可以擴大正數範圍。
相關推薦
除法分塊—因數貢獻度
於是我們得到的這一個區間的每個因數的數量都是 (n/l) 這些因數有哪些呢? 當然就是 l−rl−r 裡頭這些啦 然後很顯然這些因數構成了一個等差數列, 單對於這一區間因數來說, 其和為 (l+r)∗(r−l+1)/2(l+r)∗(r−l+1)/2 每個因數有 (n
HDU-6395多校7 Sequence(除法分塊+矩陣快速冪)
review lse %d sca code left define hdu fin Sequence Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others
34 除法分塊
Problem C — limit 1 second Fear Factoring The Slivians are afraid of factoring; it’s just, well, difficult. Really, they don’t even car
【數學分析+除法分塊】Codeforces830C[Bamboo Partition]題解
題目概述 有 n 個竹子,每個竹子剛開始高度為 0 ,每過一天會長高 1 ,現在每過 d 天來檢查一次,如果 i 竹子的高度 ≥ai 則將該竹子高度砍為 ai 且該竹子不再生長,求砍掉高度不超過 k
bzoj 1257餘數之和sum 除法分塊
Description給出正整數n和k,計算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值其中k mod i表示k除以i的餘數。例如j(5, 3)
Bzoj 2301: [HAOI2011]Problem b(莫比烏斯反演+除法分塊)
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MB Description 對於給出的n個詢問,
【莫比烏斯函式+除法分塊】BZOJ2301(HAOI2011)[Problem b]題解
題目概述 求 a≤x≤b,c≤y≤d 中 (x,y)=k 的個數。 解題報告 好像很多人說是莫比烏斯反演……但是我感覺只用到了狄利克雷卷積和莫比烏斯函式啊QAQ? 求區間果斷容斥,那麼先寫出
【除法分塊】BZOJ1257 [CQOI2007]餘數之和sum
題面在這裡 把答案的形式寫出來就是這樣的: ∑i=1mn−⌊ni⌋⋅i nm−∑i=1m⌊ni⌋⋅i 可以發現,隨著i的增長,⌊ni⌋是可以分塊的 而且最多有O(n√)級別的塊數 示例程式:
牛客練習賽 因數個數和(分塊或容斥)
1.分塊 時間複雜度為O() 依次計算每個塊的貢獻1 ->R1,L2 -> R2, L3 -> R3, L4 -> R4, ......, Ln -> Rn 舉例: 計算10的因數的個數: 第一塊:1到1,每個數的貢獻為10, 總貢
牛客網練習賽25A—因數個數和(整除分塊)
題目描述 q次詢問,每次給一個x,問1到x的因數個數的和。 輸入描述: 第一行一個正整數q ; 接下來q行,每行一個正整數 x 輸出描述: 共q行,每行一個正整數表示答案 題意: 給你一個n,求1的因子數+2的因子數+3的因子數+......+n的因子數。
[NOI2010]能量采集 BZOJ2005 數學(反演)&&歐拉函數,分塊除法
出了 noi2010 http div 能量 its radius n) isdigit 題目描述 棟棟有一塊長方形的地,他在地上種了一種能量植物,這種植物可以采集太陽光的能量。在這些植物采集能量後,棟棟再使用一個能量匯集機器把這些植物采集到的能量匯集到一起。 棟棟的植物
分塊之區間查詢與區間修改
con names void cnblogs 枚舉 == code != esp 給出一個長為n的數列,以及n個操作,操作涉及區間加法,區間求和。 這題的詢問變成了區間上的詢問,不完整的塊還是暴力;而要想快速統計完整塊的答案,需要維護每個塊的元素和,先要預處理一下。
ACM-T1分塊
style 不存在 size possible pos 描述 最大 pan 分塊 ty的難題 題目背景 國民男神ty又遇到了一個小難題,他在和xqj大神的爭論中(誰
[HDOJ1754]I Hate It(分塊)
using cnblogs names eof sca 鏈接 include ons code 題目鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=1754 題意:老題了,現場賽總是有很多題,雖然想不到正解,但是服務器都比較勁,用分
[UVA12003] Array Transformer(分塊,二分,暴力)
ace main 並且 orm == nsf gin 二分 space 題目鏈接:https://vjudge.net/problem/UVA-12003 題意:n個數,每次查詢[l,r]區間內比v小的數的個數,並且要更新一個位置為另一個值,強制在線。 首先分塊,分塊後對每
bzoj2002 彈飛綿羊 分塊
getchar() -- 處理 自己的 方便 open pla none alt 這道題是分塊的初嘗試 講給定的區間n進行分塊處理 這個每次修改的復雜的只有logn 很方便 代碼是學黃學長的 http://hzwer.com/3505.html 當然裏面還是有一定我自己的想
【bzoj2002】彈飛綿羊——分塊
pac ace 代碼 print using () amp scanf spa 這道題是很簡單的分塊吧,統計每個塊裏要中轉的次數(即st數組),最後輸出即可。 如果修改某個彈力裝置的彈力系數,那麽要從這個裝置開始往回走到這一塊的最左端(即l[belong[b]]),修改相對
[BZOJ2002] Bounce 彈飛綿羊(分塊)
mes lowbit string ret php str nbsp ems spa 題目鏈接:http://www.lydsy.com/JudgeOnline/problem.php?id=2002 1 #include <bits/stdc++.h>
Educational Codeforces Round 22 E. Army Creation 主席樹 或 分塊
tor ron following time long different value comm member E. Army Creation As you might remember from our previous
【bzoj2724】[Violet 6]蒲公英 分塊+STL-vector
tdi data 時間復雜度 include ole log put for output 題目描述 輸入 修正一下 l = (l_0 + x - 1) mod n + 1, r = (r_0 + x - 1) mod n + 1 輸出 樣例輸入 6