当前位置: 首页 > news >正文

题解:洛谷 P1464 Function

【题目来源】

洛谷:P1464 Function - 洛谷 (luogu.com.cn)

【题目描述】

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

  • 如果 \(a\le 0\)\(b\le 0\)\(c\le 0\) 就返回值 \(1\)
  • 如果 \(a\gt 20\)\(b\gt 20\)\(c\gt 20\) 就返回 \(w(20,20,20)\)
  • 如果 \(a\lt b\) 并且 \(b\lt 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\) 均为 \(15\) 时,调用的次数将非常的多。你要想个办法才行。

注意:例如 \(w(30,-1,0)\) 又满足条件 \(1\) 又满足条件 \(2\),请按照最上面的条件来算,答案为 \(1\)

【输入】

会有若干行。

并以 \(−1,−1,−1\) 结束。

【输出】

输出若干行,每一行格式:

w(a, b, c) = ans

注意空格。

【输入样例】

1 1 1
2 2 2
-1 -1 -1

【输出样例】

w(1, 1, 1) = 2
w(2, 2, 2) = 4

【解题思路】

image

【算法标签】

《洛谷 P1464 Function》 #搜索# #递归# #记忆化搜索#

【代码详解】

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
LL a, b, c;
int w1[25][25][25]; // 记忆化数组,存储已计算结果// 递归计算w(a,b,c)函数
int w(LL a, LL b, LL c) 
{// 边界条件1:任一参数≤0时返回1if (a <= 0 || b <= 0 || c <= 0) return 1;// 边界条件2:任一参数>20时按20计算if (a > 20 || b > 20 || c > 20) return w(20, 20, 20);// 记忆化:如果已计算过,直接返回结果if (w1[a][b][c] != 0) return w1[a][b][c];// 递归情况1:a<b且b<cif (a < b && b < c) w1[a][b][c] = w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c);// 递归情况2:其他情况else w1[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);return w1[a][b][c];
}int main() 
{// 初始化记忆化数组为0memset(w1, 0, sizeof(w1));while (true) {cin >> a >> b >> c;// 输入终止条件if (a == -1 && b == -1 && c == -1) break;// 计算并格式化输出结果printf("w(%lld, %lld, %lld) = %d\n", a, b, c, w(a, b, c));}return 0;
}

【运行结果】

1 1 1
w(1, 1, 1) = 2
2 2 2
w(2, 2, 2) = 4
-1 -1 -1
http://www.jsqmd.com/news/389941/

相关文章:

  • 标准 Hough 变换、修正 Hough 变换和序列 Hough 变换三种典型航迹起始算法研究附Matlab代码
  • 交稿前一晚!8个降AIGC工具测评:自考降AI率必备攻略
  • 差分进化算法(DE)与缩放因子自适应差分进化(SHADE)在CEC2005函数寻优中的性能研究附Matlab代码
  • 这次终于选对!8个AI论文平台测评:本科生毕业论文写作必备工具推荐
  • WOA-SVM时序预测模型研究——基于鲸鱼优化算法的支持向量机时序预测方法附Matlab代码
  • 表贴式PMSM的直接转矩控制(DTC)仿真模型附Simulink仿真
  • 比较CVaR最优投资组合与均值-方差投资组合以及其他模型,包括全局最小方差(GMVP)和市场投资组合附Matlab代码
  • 这次终于选对!8个一键生成论文工具:自考毕业论文+开题报告高效写作测评
  • 题解:洛谷 P1028 [NOIP 2001 普及组] 数的计算
  • 2026年IEEE IOTJ SCI2区TOP,面向关键节点感知的灾害区域无人机集群路径规划,深度解析+性能实测
  • 2026年上班族香港优才靠谱品牌指南:从政策落地到全周期服务对比 - 速递信息
  • 采用单极表面电荷密度方法数值计算长且均匀磁化圆柱体极尖间气隙的磁场,并与类似点磁单极的近似方法进行比较附Matlab代码
  • 题解:洛谷 P1044 [NOIP 2003 普及组] 栈
  • 超级创新【物流中心选址】基于企鹅优化算法在物流中心选址的应用附Matlab代码
  • 新手也能上手 10个降AI率软件降AIGC网站:继续教育必备工具深度测评与推荐
  • 救命神器 10个AI论文写作软件测评:专科生毕业论文+开题报告高效写作指南
  • 探索三相交错并联Buck电路双闭环控制的MATLAB/Simulink仿真之旅
  • 【8*】WQS二分学习笔记
  • 题解:洛谷 P2036 [COCI 2008/2009 #2] PERKET
  • 2026年考察升降平台工厂,重点关注这些核心指标,翻转平台/装车平台/自行走升降机/移动登车桥,升降平台厂商推荐榜 - 品牌推荐师
  • 不踩雷!继续教育降AI率工具 —— 千笔·专业降AIGC智能体
  • 照着用就行:千笔AI,抢手爆款的AI论文写作软件
  • [嵌入式系统-231]:传感器:模拟信号检测
  • 题解:洛谷 P1002 [NOIP 2002 普及组] 过河卒
  • 定稿前必看!AI论文网站 千笔AI VS 锐智 AI,专科生专属神器!
  • 实测才敢推!最强的降AI率平台 —— 千笔·降AIGC助手
  • 专科生收藏!千笔,普遍认可的AI论文平台
  • 残疾人代步车辅助避障,小型车视觉避障,室内外通行,输出安全行驶。
  • 高架桥防坠物检测,识别空中坠物,提前预警,输出风险提示。
  • Visual Studio Code(VS Code)的安装与使用