法雷級數的遞推公式很簡單:f[1] = 2; f[i] = f[i-1]+phi[i]。
該題是法雷級數的變形吧,答案是2*f[i]-1。
#include #include #include #include #include #include #include #include #include #include #include #include #define LL long long #define _LL __int64 #define eps 1e-12 #define PI acos(-1.0) using namespace std; const int maxn = 1100; int flag[maxn]; int prime[maxn]; int phi[maxn]; LL f[maxn]; void init() { memset(flag,0,sizeof(flag)); prime[0] = 0; phi[1] = 1; for(int i = 2; i < maxn; i++) { if(flag[i] == 0) { phi[i] = i-1; prime[++prime[0]] = i; } for(int j = 1; j <= prime[0]&&prime[j]*i http://poj.org/problem?id=2478更簡單了,直接求法雷級數。基於素數篩的歐拉函數。 #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long #define _LL __int64 #define eps 1e-12 #define PI acos(-1.0) using namespace std; const int maxn = 1000010; int flag[maxn]; int prime[maxn]; int phi[maxn]; LL f[maxn]; void init() { memset(flag,0,sizeof(flag)); prime[0] = 0; phi[1] = 1; for(int i = 2; i < maxn; i++) { if(flag[i] == 0) { phi[i] = i-1; prime[++prime[0]] = i; } for(int j = 1; j <= prime[0]&&prime[j]*i
http://poj.org/problem?id=2478
更簡單了,直接求法雷級數。基於素數篩的歐拉函數。
#include #include #include #include #include #include #include #include #include #include #include #include #define LL long long #define _LL __int64 #define eps 1e-12 #define PI acos(-1.0) using namespace std; const int maxn = 1000010; int flag[maxn]; int prime[maxn]; int phi[maxn]; LL f[maxn]; void init() { memset(flag,0,sizeof(flag)); prime[0] = 0; phi[1] = 1; for(int i = 2; i < maxn; i++) { if(flag[i] == 0) { phi[i] = i-1; prime[++prime[0]] = i; } for(int j = 1; j <= prime[0]&&prime[j]*i
Prime Ring
hdu-----(3746)Cyclic Nacklace(
UVA 1347(POJ 2677)Tour(雙調歐幾裡得旅
今天晚上用模板方法把雙向鏈表實現了下,由於有點小粗心,在
MST.... C. Dungeon
根據sgi 的STL源碼的二級分配算法改寫的內存