問題 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。...