18徐州網路賽D Easy Math

2022-06-08 17:39:08 字數 1094 閱讀 1413

補充一點性質

\[\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...