補充一點性質
\[\sum_\varphi(d) = n
\]證明:
對於 \(n = 1\) ,不難驗證滿足題意
對於 \(n = p^a\) ,
\[\sum_\varphi(d) = 1 + \sum_^a\varphi(p^i) \\=p^a = n
\]對於 \(n = p_1^...p_k^\)
\[\sum_\varphi(d) = \sum_^\varphi(p_1^i)\sum_^\varphi(p_2^i)...\sum_^\varphi(p_k^i)\\=p_1^...p_k^ = n
\]題意:
給定 \(m,n\) 求
\[\sum_^m\mu(i * n)
\]解:
這樣就可以進行遞迴了,但是我不會算複雜度...
還注意到乙個地方,線篩的判斷i % prime[j] == 0
的地方要注意函式的取值
#includeusing namespace std;
const int n = 1e6 + 10;
typedef long long ll;
ll prime[n], cnt, vis[n], mu[n], sum[n];
void init()
for (int j = 1; j <= cnt and prime[j] * i < n; j++)
} }for (int i = 1; i < n; i++) sum[i] = sum[i - 1] + mu[i];
}ll n, m;
unordered_mapm;
ll djs(ll n)
return m[n] = ans;
}ll cal(ll n)
} if (n > 1)
ans *= -1;
return ans;
}ll solve(ll m, ll n)
} return v * ans;
}int main()
2018徐州網路賽
a.hard to prepare dp 題目 題意 環形圈中,給每人乙個號碼,求使得相鄰數字反異或為正數的方案數。有題意可推出,每兩個數反異或要麼是0要麼是正數,所以也就是讓相鄰數字反異或後不能為0。又知道,與某個數反異或之後為0的只有唯一乙個數,因此可推出第1個人到第n個人分別可選的數的個人為 ...
徐州網路賽2018
網路賽的題比賽應該不會出了吧 嗯.include using namespace std define ll long long const int maxn 1005 int down,up,s,n int a maxn b maxn c maxn int dp maxn 305 int high...
2018徐州網路賽F,H,I
只能來划水,只做了3題。f 隊友切的 includeusing namespace std int line,k,t,ans,x,y,len int main for auto it mp.begin it mp.end it ans max ans,len cout includeusing na...