#12237: 請問不用遞迴想法該如何解這題


o0931051998 (cian pan)

學校 : 國立雲林科技大學
編號 : 50993
來源 : [123.205.89.53]
最後登入時間 :
2017-06-18 23:51:12
b936. Kevin 愛橘子 -- 有一天Kevin走在路上 | From: [123.205.89.53] | 發表日期 : 2017-06-18 23:54

如題,

遞迴似乎都會tle,

想問是否有人能提供演算法。

 
#12238: Re:請問不用遞迴想法該如何解這題


k034006 (Sine Wu)

學校 : 高雄市立高雄高級中學
編號 : 46921
來源 : [140.112.230.10]
最後登入時間 :
2024-04-08 03:46:24
b936. Kevin 愛橘子 -- 有一天Kevin走在路上 | From: [27.105.30.62] | 發表日期 : 2017-06-19 00:02

如題,

遞迴似乎都會tle,

想問是否有人能提供演算法。


我也卡在這QQ

 
#13674: Re:請問不用遞迴想法該如何解這題


054025 (東翰)

學校 : 高雄市立高雄高級中學
編號 : 63295
來源 : [101.9.112.182]
最後登入時間 :
2021-07-17 17:36:17
b936. Kevin 愛橘子 -- 有一天Kevin走在路上 | From: [114.38.244.31] | 發表日期 : 2018-04-06 10:01

如題,

遞迴似乎都會tle,

想問是否有人能提供演算法。


我也卡在這QQ



#include <iostream>

#include <cstdio>

using namespace std;

long long int m,n,ans;

long long int dfs(long long int k)

{

if((k/2)<n)

{

return 1;

}

else

{

if(k%2==0)

{

return 2*dfs(k/2);

}

else if(k%2==1)

{

return dfs((k+1)/2)+dfs((k-1)/2);

}

}

}

int main()

{

while(scanf("%lld %lld",&m,&n)==2)

{

if(m<n) printf("0\n");

else

{

printf("%lld\n",dfs(m));

}

 

}

}

1.3秒過

 
ZeroJudge Forum