尤拉心算 bzoj4804

2021-09-25 15:27:40 字數 978 閱讀 1423

問題 b: 尤拉心算(bzoj4804)

時間限制: 2 sec 記憶體限制: 256 mb

提交: 74 解決: 28

[提交][狀態]

題目描述

description

給出乙個數字n

input

第一行為乙個正整數t,表示資料組數。

接下來t行為詢問,每行包含乙個正整數n。

t<=5000,n<=10^7

output

按讀入順序輸出答案。

sample input110

sample output

136輸入

輸出提示

林肯是大頭:

bzoj

思路:隔了一天就忘了啊,,,

看看**8

看了眼題解緩過來了

就是列舉誰為最大公約數->phi[i]

再計算有多少對i,j除以最大公約數後互質(利用phi字首和計算,上限為n/i)

分塊見**8

#include#include#includeusing namespace std;

const int maxn=10000000+10;

int phi[maxn];

int p[700000];

int num[maxn];

long long pre[maxn];

long long ans[maxn];

int main()

num[i]=p[0];

pre[i]=pre[i-1]+1ll*phi[i];

}int t;

scanf("%d",&t);

for(int l=1;l<=t;l++)

*///超時做法

for(int i=1;i<=n;i=nxt+1)

printf("%lld\n",ans);

}return 0;

}

BZOJ4804 尤拉心算

給出乙個數字n 第一行為乙個正整數t,表示資料組數。接下來t行為詢問,每行包含乙個正整數n。t 5000,n 10 7 按讀入順序輸出答案。110 莫比烏斯反演。還有一種用尤拉函式的神仙做法 begin sum sum n phi i,j sum phi d sum sum n i,j d sum ...

BZOJ4804 尤拉心算

作者部落格 正解 莫比烏斯反演 解題報告 比較簡單的莫烏題,都是老套路了,最後設 q gt 可以根號回答一次詢問。注意後面那個積性函式的遞推公式!邊界不要漏了!it is made by ljh2000 有志者,事竟成,破釜沉舟,百二秦關終屬楚 苦心人,天不負,臥薪嘗膽,三千越甲可吞吳。includ...

4804 尤拉心算

4804 尤拉心算 time limit 15 sec memory limit 256 mb submit 229 solved 147 submit status discuss description 給出乙個數字n 第一行為乙個正整數t,表示資料組數。接下來t行為詢問,每行包含乙個正整數n。...