BZOJ 2190: [SDOI2008]仪仗队( 欧拉函数 )
生活随笔
收集整理的這篇文章主要介紹了
BZOJ 2190: [SDOI2008]仪仗队( 欧拉函数 )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
假設C君為(0, 0), 則右上方為(n - 1, n - 1).
一個點(x, y) 能被看到的前提是gcd(x, y) = 1, 所以 answer = ∑ phi(i) * 2 + 2 - 1 = ∑phi(i) * 2 + 1 ( 1 <= i < n ). +2是因為(1, 0), (0, 1) 兩個點, -1是因為(1, 1)重復計算了
-------------------------------------------------------------------------
#include<bits/stdc++.h>using namespace std;const int maxn = 40009;int phi[maxn], n;void phis() {for(int i = 1; i < n; i++) phi[i] = i;for(int i = 2; i < n; i++) if(phi[i] == i) ? ?for(int j = i; j < n; j += i) ? ? ? ?phi[j] = phi[j] / i * (i - 1);}int main() {int ans = 0;cin >> n;phis();for(int i = 1; i < n; i++) ans += phi[i];cout << ans * 2 + 1 << "\n";return 0;}------------------------------------------------------------------------
?
2190: [SDOI2008]儀仗隊
Time Limit:?10 Sec??Memory Limit:?259 MBSubmit:?1716??Solved:?1087
[Submit][Status][Discuss]
Description
作為體育委員,C君負責這次運動會儀仗隊的訓練。儀仗隊是由學生組成的N * N的方陣,為了保證隊伍在行進中整齊劃一,C君會跟在儀仗隊的左后方,根據其視線所及的學生人數來判斷隊伍是否整齊(如下圖)。 ?? 現在,C君希望你告訴他隊伍整齊時能看到的學生人數。
Input
共一個數N。
Output
共一個數,即C君應看到的學生人數。
Sample Input
4Sample Output
9HINT
【數據規模和約定】 對于 100% 的數據,1 ≤ N ≤ 40000
Source
數論
?
轉載于:https://www.cnblogs.com/JSZX11556/p/4677216.html
總結
以上是生活随笔為你收集整理的BZOJ 2190: [SDOI2008]仪仗队( 欧拉函数 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黄山风景区可以开车上山吗
- 下一篇: Git指南-基础篇