bzoj2190: [SDOI2008]儀仗隊(尤拉函式)
題目傳送門
基礎太弱導致我現在才去學尤拉函式。
解法:
尤拉函式就是求小於等於x且與x互質的數的個數。
先把左下角換到左上角(等效)
把1,1看做原點。
斜率相同的點中只有一個點能看到。
斜率為(x-1)/(y-1)
那麼只有互質的時候才是離原點最近的點。
所以我們就要求與每一個x-1互質個個數。
所以篩phi。然後求出ans=1~n-1的phi(尤拉函式)
然後因為尤拉函式求得是小於等於x的,所以ans就是對角線左邊的方案數。
還有對角線右邊的三角形,還有對角線上的第一個點。
所以最後答案是ans*2+1
程式碼實現:
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int prime[11000],phi[41000];
int n;
void get_phi() { //線性篩phi
memset(phi,0,sizeof(phi));
phi[1]=1;int len=0;
for(int i=2;i<=n;i++) {
if(phi[i]==0) {
prime[++len]=i;
phi[i]=i-1;
}
for(int j=1;j<=len&&i*prime[j]<=n;j++) {
int t=i*prime[j];
if(i%prime[j]==0) {
phi[t]=phi[i]*prime[j];break;
}
phi[t]=phi[i]*(prime[j]-1);
}
}
}
int main() {
scanf("%d",&n);
get_phi();
int ans=0;
for(int i=1;i<n;i++)
ans+=phi[i];
printf("%d\n",ans*2+1);
return 0;
}
相關文章
- 尤拉函式φ函式
- 4939 尤拉函式函式
- 尤拉函式入門函式
- 尤拉函式詳解函式
- poj 2478 尤拉函式函式
- 淺談尤拉函式函式
- 尤拉函式性質和模版函式
- HDU2588GCD(尤拉函式)GC函式
- 轉載:尤拉函式知識點總結及程式碼模板及尤拉函式表函式
- Note -「因數的尤拉函式求和」函式
- bzoj2818: Gcd(尤拉函式)GC函式
- POJ 2478-Farey Sequence(尤拉函式)函式
- B.日記和尤拉函式函式
- 尤拉計劃512題(冪的尤拉總計函式和)函式
- POJ 2048 Longge's problem (尤拉函式 積性函式)函式
- HDU 4002Find the maximum(尤拉函式)函式
- POJ 2407-Relatives-尤拉函式函式
- [藍橋杯][演算法提高VIP]尤拉函式演算法函式
- HDU 1695-GCD(容斥原理+尤拉函式)GC函式
- HDU 3501 Calculation 2 (尤拉函式應用)函式
- 51nod1262 扔球(尤拉函式)函式
- 尤拉函式、整除分塊和擴充套件歐幾里得函式套件
- §3. 復變數的指數函式·尤拉公式變數函式公式
- 尤拉計劃533題:卡邁克爾函式函式
- POJ2487Farey Sequence(尤拉函式&&法雷級數)函式
- HDU3501 Calculation 2(尤拉函式推廣)函式
- 51nod1040 最大公約數之和 (尤拉函式 )函式
- BZOJ 2818 Gcd (莫比烏斯反演 或 尤拉函式)GC函式
- 紫書 例題 10-27 UVa 10214(尤拉函式)函式
- FZU 1969 && UVA 11426 GCD Extreme (尤拉函式 或 莫比烏斯反演)GCREM函式
- 尤拉公式——真正的宇宙第一公式公式
- 素數個數 <埃式篩 && 尤拉篩>
- 數論線性篩總結 (素數篩,尤拉函式篩,莫比烏斯函式篩,前n個數的約數個數篩)函式
- MySQL函式大全(字串函式,數學函式,日期函式,系統級函式,聚合函式)MySql函式字串
- P2303 [SDOI2012] Longge 的問題(尤拉函式,推式子)函式
- HDU 4279 2012網路賽Number(數論 尤拉函式結論約數個數)函式
- Oracle 函式大全(字串函式,數學函式,日期函式,邏輯運算函式,其他函式)Oracle函式字串
- 【函式式 Swift】函式式思想函式Swift