給出乙個數n,輸出小於等於n的所有數,兩兩之間的最大公約數之和。
本來和bzoj的2705有類似 改了改還是tle,發現有重複的地方 借鑑了下別人的**把核心求phi(x)*y 拿出來預處理就好了 用了快讀優化 交第一次最後一點tle 交第二次就過了 最後乙個點1600+ms,不是很懂這個評測機。。。
#include#include#include#include#include#include#include#define ll long long
using namespace std;
ll n,m,t;
long long read()
while(ch>='0' && ch<='9')
return x*f;}
ll sum[5150000];
ll phi[5150000],prime[5150000],tot;
bool check[5150000];
ll f[5100000];
void getphi(int gg)
for(int j=1;j<=tot;j++)
else phi[i*prime[j]]=phi[i]*phi[prime[j]];
} }} ll sum[5111000]=;
ll fun(ll x)
void init(int g)
}ll ss[10000000/2+1000];
int main()
return 0;
}
數論 51nod1188 最大公約數之和 V2
題面 51nod1188 n i 1g cd i n 我們轉成了 n x np hi n x x 這題繼續用 本題要求 n i 1 i 1j 1gc d i,j 那我們可以先轉成 n i 1 i 1x iph i i x x 我們再轉化一下就成了 n i 2 x y nx 1ph i i x可以發現...
51nod 最大的最大公約數
這道題挺有意思,讓求最大的兩兩最大公約數,很顯然暴力直接做複雜度太高。可以利用試除法,列舉每乙個數的因子,如果某個因子出現超過了兩次,就可以進行判斷,因為題目要求兩兩。最大公約數一定是某個數的因子。include includeusing namespace std int cnt 50005 an...
51nod 1040 最大公約數之和
1040 最大公約數之和 rihkddd 基準時間限制 1 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 給出乙個n,求1 n這n個數,同n的最大公約數的和。比如 n 6 1,2,3,4,5,6 同6的最大公約數分別為1,2,3,2,1,6,加在一起 15 input 1個數n ...