poj解題報告 2635

2021-06-27 04:50:16 字數 731 閱讀 6569

這題特別好理解,就是**坑啊。題意就是給乙個數,這個數是兩個大素數的積,再給出乙個數,如果最小的素數比給的數大,列印good,否則列印bad和最小的素數。

這題用的方法是高精度求模+同餘模定理。還有素數打表,把10^6內的素數全部預打表,在求模時則列舉到小於l為止。注意打表不能只打到100w,要保證素數表中最大的素數必須大於10^6。千進製的性質與十進位制相似。例如,把k=1234567轉成千進製,就變成了:kt=[  1][234][567]。為了方便處理,按「區域性有序,全域性倒序」的方式存放kt中即kt=[567][234][1  ] 。

**如下

#include

#include

#include

#define range 1000100

int kt[10000];

int l;

int prime[range+1];

void primetable()

if(flag==1)

prime[pnum++]=i;

}return;

}int mod(const int* k,const int p,const int len)

void main()

lenkt=(lenk+2)/3;

flag=1;

pmin=0;

while(prime[pmin]pmin++;

}if(flag==1)

printf("good\n");}}

解題報告 18 5 23 POJ 2635

include includeusing namespace std const int range 1000100 打表不能只打到100w,素數表中最大的素數必須大於10 6 int kt 10000 千進製的k int l int prime range 1 素陣列打表 void primeta...

poj解題報告 1328

不得不說,這題是讓我飽受折磨,畢竟第一次做貪心演算法,而且wa了好多次,幸好有學長的幫助,最終找到了問題所在,是在快排上是問題,double高位不可向int低位轉換,由於一開始強制轉換導致雖然樣例和其他的測試資料過了,但還是wa,現在改完了就對了,附上ac ps 這題通過率是22 真心不簡單 如下 ...

poj解題報告 2586

這題我是用的貪心演算法,其實不用也可以,列舉也能解決,因為情況不多。因為是每連續5個月必有虧損,而一年只有1 5,2 6,3 7,4 8 8 12共8種情況。現在設盈餘為s,虧損為d,可列出以下幾種情況。ssssdssssdss 4ssssddsssddss 3s 2d ssdddssdddss 2...