poj解題報告 1152

2021-06-27 08:25:11 字數 754 閱讀 8767

題意還是很明確的,給你乙個n進製的整數r,題目保證r能被n-1整除,讓你求符合條件的最小的n。

但是這題的數論證明有點困難了,我在此引用一下別人的證明,沒有證明真的不好做啊。

設輸入的是abcd,假設其解是n進製,

(a*n*n*n + b*n*n + c*n + d)%(n-1)=0

=>( (a*n*n*n)%(n-1)+ (b*n*n)%(n-1)+ (c*n)%(n-1)+d )%(n-1)=0

=>((a* (n%(n-1)) *(n%(n-1)) *(n%(n-1))) + (b* (n%(n-1)) *(n%(n-1))) + (c* (n%(n-1) + d ) %(n-1)=0

=> (a*1*1*1 + b*1*1 + c*1 + d) % (n-1)=0

=> (a+b+c+d)%(n-1)=0

所以,經過轉換,變為求輸入數的各數字的和能%(n-1)等於0;

**如下

#include

#include

char str[35000];  

int len, n;  

void main()  

if(n==0)  

min=100;  

for(i=n;i<=62;i++)

}  if(min<=61)  

printf("%d\n",min+1);

else  

printf("such number is impossible!\n");  } }

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...

poj解題報告 2635

這題特別好理解,就是 坑啊。題意就是給乙個數,這個數是兩個大素數的積,再給出乙個數,如果最小的素數比給的數大,列印good,否則列印bad和最小的素數。這題用的方法是高精度求模 同餘模定理。還有素數打表,把10 6內的素數全部預打表,在求模時則列舉到小於l為止。注意打表不能只打到100w,要保證素數...