#include <stdio.h>
#include <stdlib.h>
int dp[][][];
int w(int a,int b,int c){
if(a<=||b<=||c<=){
return ;
}
if(a>||b>||c>){
return w(,,);
}
if(dp[a][b][c]){//查找数组中是否有值,如果有,直接返回数组的值
return dp[a][b][c];
}
if(a<b&&b<c){
dp[a][b][c]= w(a,b,c-)+w(a,b-,c-)-w(a,b-,c);
}
else
dp[a][b][c]= w(a-,b,c)+w(a-,b-,c)+w(a-,b,c-)-w(a-,b-,c-);
return dp[a][b][c];
}
int main(){
int a,b,c;
int num;
//第一种读入方法
freopen("input.txt","r",stdin);
//scanf("%d %d %d\n",&a,&b,&c);
scanf("%d",&num);
for(int i=;i<num;i++){
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
printf("w(%d, %d, %d) = %d\n",a,b,c,w(a,b,c));
}
//第二种读入方法
//while(~scanf("%d %d %d",&a, &b, &c)){
//if(a==-1&&b==-1&&c==-1)
// break;
//printf("w(%d, %d, %d) = %d\n",a,b,c,w(a,b,c));
//}
//w(a,b,c);
system("pause"); }

记忆化搜索:

求解的过程中按着自顶向下的顺序,但每求一个解的状态,就把他的解保存下来,以后再次遇到这个解的时候,就不必重新求解了。

最新文章

  1. 学习 git基础命令
  2. spring MVC入门教程
  3. Chrome 及其 插件“个性化设置”备份
  4. Webview组件和HTML的介绍
  5. 三、HTTP抓包测试
  6. SpringAOP详解(转载大神的)
  7. Android异步加载访问网络图片-解析json
  8. PHP面向对象——类常量,魔术常量与延期绑定
  9. redhat网络基础配置
  10. Install PaddlePaddle (Parallel Distributed Deep Learning)
  11. centos之Haproxy 负载均衡学习笔记
  12. 由IP和掩码计算广播地址
  13. Beta项目冲刺汇总贴
  14. 关于ios导航控制器的知识总结
  15. android程序打包成APK
  16. could not write file C:\DOCUME~1\ADMIN
  17. Core Text
  18. android下4G上网卡
  19. CRegKey 注册表操作
  20. Doxgen+Graphiz+htmlhelp配置

热门文章

  1. 《Code Complete》ch.23 调试
  2. 简单的python http接口自动化脚本
  3. Orchard官方文档翻译(十一) 使用Tags组织文本
  4. 【PL/SQL练习】自定义异常
  5. 【测试】模拟一个全表扫描的sql,对其进行优化走索引,并且将执行计划稳定到baseLine。
  6. javascript设计模式-工厂模式
  7. C#中DataTable转换JSON
  8. ios如何获取位置权限
  9. CSS 之 Opacity多浏览器透明度兼容处理
  10. 做权限树时 使用EasyUI中Tree