ZOJ 2562 More Divisors
生活随笔
收集整理的這篇文章主要介紹了
ZOJ 2562 More Divisors
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
又是個(gè)水題,剛剛開(kāi)始沒(méi)有用搜索,因?yàn)閷?duì)于反素?cái)?shù)有:
n=2^t1*3^t2^5^t3*7^t4..... 這里有 t1>=t2>=t3>=t4。
而且相同的因數(shù)的情況下,素?cái)?shù)越不同越好。
哪知道這個(gè)方法錯(cuò)了! = =。
看來(lái)還得中規(guī)中矩得用dfs。
我覺(jué)得還可以優(yōu)化下,感覺(jué)搜索干了很多無(wú)用的活兒。
搜索還得好好練練啊...
1 #include<cstdio> 2 #define LL long long 3 using namespace std; 4 int prim[16] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47 }; 5 LL n,bestnum,bestsum; 6 void dfs(LL num,LL sum,LL k,LL limit) 7 { 8 if(num>bestnum) 9 { 10 bestnum=num; 11 bestsum=sum; 12 } 13 if(num==bestnum&&bestsum>sum) 14 bestsum=sum; 15 if(k>14) return; 16 for(int i=1;i<=limit;i++) 17 { 18 if(sum*prim[k]>n) break; 19 sum*=prim[k]; 20 dfs(num*(i+1),sum,k+1,i); 21 } 22 } 23 int main() 24 { 25 while(scanf("%lld",&n)!=EOF) 26 { 27 bestnum=0,bestsum=n; 28 dfs(1,1,0,50); 29 printf("%lld\n",bestsum); 30 } 31 return 0; 32 } View Code?
轉(zhuǎn)載于:https://www.cnblogs.com/yours1103/p/3281421.html
總結(jié)
以上是生活随笔為你收集整理的ZOJ 2562 More Divisors的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: c# xmlhttp POST提取远程w
- 下一篇: Java递归算法经典实例