博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cogs 1396. wwww
阅读量:4985 次
发布时间:2019-06-12

本文共 1044 字,大约阅读时间需要 3 分钟。

☆   输入文件:wwww.in   输出文件:wwww.out   简单对比

时间限制:1 s   内存限制:256 MB

【题目描述】

 

对于一个递归函数w(a,b,c)

如果 a<=0 或者 b<=0 或者 c<=0 就返回1. 否则

如果 a>20 或者 b>20 或者 c>20 就返回w(20,20,20) 否则

如果 a<b 并且 b<c 就返回w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,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)

这是个简单的递归函数,但实现起来可能会有些问题。某些a、b、c的值会使函数运行时间无法忍受。

 

【输入格式】

输入文件有n+1(0<=n<=10000)行,第i(1<=i<=n)行有三个整数ai,bi,ci(保证在pascal的longint 或 C/C++的long范围内)。

第n+1行必定是-1 -1 -1(同时保证其他行不会是-1 -1 -1)。

【输出格式】

输出文件有n行,第i行输出w(ai,bi,ci)的值(保证在pascal的int64 或 C/C++的long long范围内)。

【样例输入】

 

 

 

【样例输出】

 

 

【提示】

输出的第一行是w(1,1,1),输出的第2行是w(2,2,2)。

【来源】

题目提供者邮箱:darkgodz@qq.com

(感谢题目提供者对COGS评测系统的支持)

思路:题目已经提示的很明显了,别忘了加上记忆化。

#include
#include
#include
#include
using namespace std; int a,b,c;int f[30][30][30]; int w(int a,int b,int c){ if(a<=0||b<=0||c<=0){ return 1; } if(a>20||b>20||c>20){ return(w(20,20,20)); } if(f[a][b][c]>0) return(f[a][b][c]); if(a

 

转载于:https://www.cnblogs.com/cangT-Tlan/p/7732064.html

你可能感兴趣的文章
2019春第六周编程总结
查看>>
FLASH组件在FLEX中使用
查看>>
C++指针的指针和指针的引用
查看>>
android教程之intent对象
查看>>
python 学习笔记十五 django基础
查看>>
Python爬虫入门三之Urllib库的基本使用
查看>>
第五次作业
查看>>
如何统一修改Altium Designer中的字符大小...
查看>>
如何适应现代雇佣关系
查看>>
Codeforces Round #410 (Div. 2)B. Mike and strings(暴力)
查看>>
CABasicAnimation 基础
查看>>
delphi通过Idhttp和php交互
查看>>
两栏布局的写法
查看>>
多线程学习笔记五之读写锁实现分析
查看>>
linux内核分析(网课期末&地面课期中)
查看>>
Spring中的设计模式2
查看>>
vue项目向小程序迁移调研
查看>>
Jquery权威指南
查看>>
CSS hack大全(转)
查看>>
ZOJ - 3229 Shoot the Bullet (有源汇点上下界最大流)
查看>>