ZOJ Goldbach 2023年長沙賽區網路賽

2021-09-08 16:58:16 字數 1165 閱讀 6593

遲到了一天的ac。。。。

思路:先把單個素數 或著 兩個素數能組成的情況預處理一下,然後對於給出的 n,拿第三個素數去和兩個素數的情況匹配,最後要注意去重。

詳情見**。

因為手殘少敲了乙個 else ,debug了一晚上。。。

#include #include #include #include using namespace std;

const long long int inf = 1000000007;

bool markvisit[80010] = ;

long long int pri[80010];

long long int s[80010] = ;

long long int sm[80010] = ;//a*a

long long int sa[80010] = ;//a+a

long long int dm[80010] = ;//a*b

long long int da[80010] = ;//a+b

int main()}}

for(i = 0; i < top; ++i)//預處理

if(pri[i]*pri[i] <= 80000)

for(j = i+1; j < top; ++j)

if(pri[i]*pri[j] <= 80000)}}

int n;

long long int tempsum, sum;

while(scanf("%d",&n) != eof)

else tempsum += sm[n/pri[i]]*2 + dm[n/pri[i]];//如果只有來兩個相同 則此種情況重複計算兩次。

//因為另一種單獨計算 所以只需對其中一次*2 補成三次

}if(n >= pri[i])

else tempsum += da[n-pri[i]] + sa[n-pri[i]]*2;

//就是因為少了這個else...險些把這一晚上都廢了。。。

}else break;

}sum %= inf;

sum += tempsum/3;//因為每一種都出現了3次

sum %= inf;

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

}return 0;

}

2013傷心句子

1 全世界已落幕,暗色的瞳孔中全世界都已被孤單環繞。2 人生若真的只如初見,那又該會有多少牽掛記心間?3 傷心也許總是難以避免,落淚成為不捨的表現,而無言的揮手更需要莫大的勇氣。乙個腳步,一段距離 一次離別,乙份傷感。4 時間淡漠了記憶,儲蓄了陌生,昔時撕心裂肺,卻不如現時的安然置陌。5 望著夜空中...

2013暑假總結

看了之前總結的部落格,都是半年一次,除了進入提高班時的第乙個半年 寒假 沒有總結,當然為了彌補那個,我寫了一篇一年的總結,以後的總結週期大致為半年一次,好了,下面開始本篇的主題。轉眼間半年過去了,時間真快,可是再看這半年中每乙個學習的階段,又感覺那麼的慢,下圖是這半年的學習過的知識 其實算不上什麼學...

2013工作小結

1 書籍是自己學習的最有效途徑。習慣買書,多買國外的書。擁有了書籍不等於擁有了智慧型。要在晚上或者工作之餘抽時間把知識化為自己的。2 提高自己的專業知識,這些在工作中。個人感覺只是一種外在表現。主要的是自己去發現問題 分析問題 解決問題才是關鍵。我們每天不斷的工作,如果自己不主動的獲取新的知識。我們...