超时超时全部超时

P1464 Function

@[大Y杨](/space/show?uid=149325) 记忆化搜索
by PRXOR @ 2019-02-19 11:55:01


记忆化记忆化。。。
by PZimba @ 2019-02-19 12:06:46


得记忆化吧,要不TLE正常
by yizimi远欣 @ 2019-02-19 12:28:03


@[大Y杨](/space/show?uid=149325)
by yizimi远欣 @ 2019-02-19 12:28:20


记忆化就好了~
by Createsj @ 2019-02-19 12:32:40


$\mathcal{My~Code}$ ```cpp int fun(long long int a,long long int b,long long int c) { if(a<=0 || b<=0 || c<=0) return 1; else if(a>20 || b>20 || c>20) return 1048576; else if(a<b && b<c) return f[a][b][c]?f[a][b][c]:(f[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c)); else return f[a][b][c]?f[a][b][c]:(f[a][b][c]=w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1)); } ```
by Createsj @ 2019-02-19 12:33:41


DP也可以
by 塔罗兰 @ 2019-02-19 12:36:20


> ## 说明 记忆化搜索 说明里都写的清清楚楚了,不写记忆化肯定超时啊
by NaCly_Fish @ 2019-02-19 12:36:59


加一个数据处理
by 塔罗兰 @ 2019-02-19 12:37:39


记忆化搜索/递归式动态规划: 1.记忆化搜索的思想 记忆化搜索的思想是,在搜索过程中,会有很多重复计算,如果我们能记录一些状态的答案,就可以减少重复搜索量 2、记忆化搜索的适用范围 根据记忆化搜索的思想,它是解决重复计算,而不是重复生成,也就是说,这些搜索必须是在搜索扩展路径的过程中分步计算的题目,也就是“搜索答案与路径相关”的题目,而不能是搜索一个路径之后才能进行计算的题目,必须要分步计算,并且搜索过程中,一个搜索结果必须可以建立在同类型问题的结果上,也就是类似于动态规划解决的那种。 也就是说,他的问题表达,不是单纯生成一个走步方案,而是生成一个走步方案的代价等,而且每走一步,在搜索树/图中生成一个新状态,都可以精确计算出到此为止的费用,也就是,可以分步计算,这样才可以套用已经得到的答案 3、记忆化搜索的核心实现 a. 首先,要通过一个表记录已经存储下的搜索结果,一般用哈希表实现 b.状态表示,由于是要用哈希表实现,所以状态最好可以用数字表示,常用的方法是把一个状态连写成一个p进制数字,然后把这个数字对应的十进制数字作为状态 c.在每一状态搜索的开始,高效的使用哈希表搜索这个状态是否出现过,如果已经做过,直接调用答案,回溯 d.如果没有,则按正常方法搜索 4、记忆化搜索是类似于动态规划的,不同的是,它是倒做的“递归式动态规划”。 原贴:https://blog.csdn.net/Acmer_Sly/article/details/53440798
by 大Y杨 @ 2019-02-19 13:43:13


| 下一页