定義乙個積性函式\(f(p^c)=p\ xor\ c\),求\(\sum_^nf(i)\)
異或這個東西不太好搞,要考慮怎麼求出\(g\)陣列。
當\(p\)為質數時\(f(p)=p-1\),所以我們讓\(g(n)=\sum_^n[i\in pri](i-1)\)就好了。
然後因為\(i-1\)不是完全積性函式,所以拆成\(i\)和\(1\)分開來就好了。
然後因為\(f(2)=3\),所以答案會少\(2\),加回去就好了。
#include#include#include#include#define ll long long
using namespace std;
const ll n=1e6+10,p=1e9+7;
ll n,t,cnt,tot,w[n],pri[n],sp[n],g1[n],g2[n],ind1[n],ind2[n];
bool v[n];
void init(ll n)
for(ll j=1;j<=cnt&&i*pri[j]<=n;j++)
}return;
}ll s(ll x,ll y)
signed main()
for(ll i=1;i<=cnt;i++)
for(ll j=1;j<=tot&&pri[i]*pri[i]<=w[j];j++)
printf("%lld\n",s(n,0)+1);
return 0;
}
loj6053 簡單的函式 min25篩
對於100 的資料,n 1e10 首先,考慮質數,即c 1的情形,f 2 3,其餘f p p 1,這裡就先統一f p p 1處理,然後對第乙個質數特判加2 由於f p p 1,所以這裡拆成兩部分,g用來算前面一項,質數p的字首和,h用來算後面一項,質數的個數即1的字首和 兩個陣列求法是一樣的,然後第...
LOJ 6053 簡單的函式 Min 25篩
題目鏈結 min 25篩見這裡 給定 n 求積性函式 f p c p oplus c 的字首和。oplus 表示異或運算。n leq 10 所求積性函式為 f p c p oplus c,quad p in prime 先考慮質數的貢獻。因為除 2 以外的質數 p 都是奇數,所以 f p p 1 f...
LOJ6053 簡單的函式(min 25篩)
題目大意 從前有個積性函式 f 滿足 f 1 1,f p k p oplus k 異或 求其前 n 項的和對 10 9 7 取模的值。1 le n le 10 這種奇怪但是簡潔的積性函式求和,首選 min 25 篩。首先可以發現,對於質數 p p ge 3 時 f p p 1 p 2 時 f p p...