正整數二元組 legend tuple (n, k) 是這樣定義的
統計有多少個 legend tuple (n, k) 滿足 1 ≤ n ≤ n, 1 ≤ k ≤ k, 其中 n 和 k 是不超過 10^12 的整數
可以很容易發現答案即為n%k==0,或者(n-1)%k==0的對數
對於一部分k,n/k是相等的,所以可以直接整除分塊,分別計算情況1和情況2的答案即可
但要注意整除分塊的r邊界不要超過k,否則會導致答案錯誤
因為這點wa了好幾發
#include using namespace std;
typedef long long ll;
struct read
template inline read & operator >> (_tp&x)
for(x = 0; isdigit(c11); c11 = read()) x = x * 10 + (c11 ^ '0');
boo && (x = -x);
return *this;
}} in;
const int n = 2e5 + 50;
const ll p = 1e9 + 7;
int main()
for (ll l = 2, r; l <= k; l = r + 1)
r = (n - 1) / x;
r = min(r, k);
ans = (ans + ((r - l + 1) % p) * (((n - 1) / l + 1) % p) % p) % p;
}printf("%lld\n", ans);
return 0;
}//1000000000000 1000000000000
2020牛客多校第七場H
題目鏈結 任何 1,k 是有效答案。如果 n,k 是有效答案,那麼 n k,k 和 n k,k 都是有效答案。給出t組,n和k 範圍1 1e12 求出 n,k 在n n,k k範圍內的有效個數。在k不變的情況下,n的取值範圍只可能是k的倍數,或者k的倍數 1,可以o 1 算出當前k對應的答案個數。即...
2020牛客暑假多校第七場補題
題目大意是說對於一棵樹,初始所有點的權值 f x f x f x 為0,有三種操作 對於結點 x xx,給定乙個值 w ww,然後對於樹上所有結點 y yy,權值加上 w d ist x,y w dist x,y w dist x,y 包括本身 對於結點 x,f x min x,0 x,f x mi...
牛客多校第七場E Find the median
題意 每次在乙個空區間內加入 l,r 區間內所有的數,然後問每次加入後的中位數是什麼。題解 一道線段樹的題目。a 線段樹的葉子節點維護了乙個區間,這個區間是 l,r 1 為什麼是這區間?因為這樣能不重不漏的包含所有的區間,每次查詢的時候也不會漏掉,自己畫一顆線段樹基本能明白了 b 然後查詢的時候,記...