TLE

P1192 台阶问题

这题不能爆搜吧……
by RisefromtheAshes @ 2024-02-17 19:19:15


@[Divinity_MING](/user/658995) az
by shooting__star @ 2024-02-17 19:19:36


```cpp #include<bits/stdc++.h> using namespace std; long long n,k; long long dt(int x) { if(x==0) { return 0; } if(x==1) { return 1; } if(x==2&&k>=2) { return 2; } if(x<k) { long long ans=0; for(int i=1;i<=x;i++) { ans+=dt(x-i); } return ans; } long long ans=0; for(int i=1;i<=k;i++) { ans+=dt(x-i); } return ans; } int main() { cin>>n>>k; cout<<dt(n); return 0; } ``` 好好好现在来个递推又TLE了
by shooting__star @ 2024-03-26 23:07:26


@[shooting__star](/user/955954) srd,这好像……是递归?
by FXLIR @ 2024-03-26 23:32:04


@[FXLIR](/user/617688) 额?
by shooting__star @ 2024-03-26 23:32:44


@[shooting__star](/user/955954) emm,具体的我也说不大清,不过你的dt()函数有重复调用同一个值的可能,可以试试写写记忆化或着干脆不用递归? ~~反正自己调用自己就是递归,错不了~~
by FXLIR @ 2024-03-26 23:40:01


@[FXLIR](/user/617688) 6,我康康有没有(
by shooting__star @ 2024-03-26 23:42:47


@[FXLIR](/user/617688) 草还真有,一大堆,例如下面这一大段(就是那个返回值): ``` 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 96 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 192 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 96 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 384 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 96 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 192 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 96 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 768 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 96 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 192 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 96 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 384 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 96 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 192 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 96 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 1536 3 6 3 12 3 6 3 24 3 6 3 12 3 6 3 48 3 6 3 12 3 6 3 24 ``` 我也是服了(测试点2的数据拿来跑了一下)
by shooting__star @ 2024-03-26 23:46:35


@[shooting__star](/user/955954) 合着这玩意儿卡里头出不来了啊
by shooting__star @ 2024-03-26 23:46:54


@[shooting__star](/user/955954) 可以用一个数组来存储每次递归调用的结果,如果重复调用就直接返回数组中存储的值,当然也可以直接推式子写循环。
by FXLIR @ 2024-03-26 23:50:27


| 下一页