原來這個叫做法裡數列啊~
想一哈,比如n=5的時候
以5作為分母的有:45,
35,2
5,15
\frac,\frac,\frac,\frac
54,53
,52
,51
這4個數,為啥是4個喃?以為小於5以內與5互質的就是φ(5
)=
4\varphi(5)=4
φ(5)=4
個所以4為分母的就有φ(4
)=
2\varphi(4)=2
φ(4)=2
個最後還要加上以1為分母的1個
所以法里數列的公式就是尤拉函式字首和+1,即:
s (n
)+
1s(n)+1
s(n)+1
#include
"bits/stdc++.h"
using namespace std;
typedef
long
long ll;
const
int maxn=
1e4+5;
vector<
int>prime;
bool vis[maxn]
;ll phi[maxn]
,sphi[maxn]
;void
phi(
int n)
for(
int j=
0;jsize()
&&i*prime[j]
<=n;j++
)else
} sphi[i]
=sphi[i-1]
+phi[i];}
}int
main()
}
小K的疑惑 牛客
bob有 n 1 leq n leq10000 個點的樹,每條邊有乙個邊權 d 0 leq d leq 233 現在定義 dis i,j 代表第 i 個點到第 j 個點的距離模2。問有多少 i,j,k 滿足 dis i,j dis i,k dis j,k 首先,一棵樹中不存在 i,j,k 使得 di...
牛客 小y的盒子
稍加觀察就會發現,4n 1就是題目要的答案。至於為什麼,看官方的題解。不過這個n非常的大,用正常快速冪解決不了。這道題我學到的就是解決冪非常大的情況。sol1 之前好像做過一道類似的題目,想不出來,在群裡看到發了乙個名詞叫十進位制快速冪。然後根據這個名字自己意淫通了。一般的快速冪是把冪當成二進位製用...
牛客練習賽53 E 老瞎眼 pk 小鮮肉
problem 這題的題意大概是 給出一段長度為 n 的區間 q 次詢問求 l r 這個區間內 最短的一段區間 l r 使得 oplus a j 0 l l 誒 離線麼?樹狀陣列好像不好做啊 因為大多數人只會單點修改區間修改和差分吧 考慮離線 線段樹 我們先記錄乙個 sum i oplus i a ...