poj1579 Function Run Fun

Linux下开机异常(fsck exited with status code 4) Linux下开机异常事情是这样的,本来我呢跑着程序听着歌,结果忽然就死机了,我只能强制关机,再次打开系统的时候,就提示这样fsck from util-linux 2.26.2 /dev/sda10 contains a file system with errors, check forced. /dev/sda10: Inodes that were part of a corrupted pr 阅读详情


http://poj.org/problem?id=1579

Function Run Fun

Description

We all love recursion! Don't we?

Consider a three-parameter recursive function w(a, b, c):

if a <= 0 or b <= 0 or c <= 0, then w(a, b, c) returns:
1

if a > 20 or b > 20 or c > 20, then w(a, b, c) returns:
w(20, 20, 20)

if a < b and b < c, then w(a, b, c) returns:
w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c)

otherwise it returns:
w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, b-1, c-1)

This is an easy function to implement. The problem is, if implemented directly, for moderate values of a, b and c (for example, a = 15, b = 15, c = 15), the program takes hours to run because of the massive recursion.

Input

The input for your program will be a series of integer triples, one per line, until the end-of-file flag of -1 -1 -1. Using the above technique, you are to calculate w(a, b, c) efficiently and print the result.

Output

Print the value for w(a,b,c) for each triple.

Sample Input

1 1 1

2 2 2

10 4 6

50 50 50

-1 7 18

-1 -1 -1

Sample Output

w(1, 1, 1) = 2

w(2, 2, 2) = 4

w(10, 4, 6) = 523

w(50, 50, 50) = 1048576

w(-1, 7, 18) = 1

方法一:打表法

思路:运用递归会超时,故而只要计算出前w[i][j][k](0<=k<=20&&0<=i<=20&&0<=j<=20) 

#include<stdio.h>
#include<iostream>
using namespace std;
int w[21][21][21];
void build()
{
     int i,j,k;
     for(i=0;i<=20;i++)
     for(j=0;j<=20;j++)
     for(k=0;k<=20;k++)
     {if(i<=0||j<=0||k<=0)
       w[i][j][k]=1;
       else if(i<j&&j<k)
       w[i][j][k]=w[i][j][k-1]+w[i][j-1][k-1]-w[i][j-1][k];
       else
       w[i][j][k]=w[i-1][j][k]+w[i-1][j-1][k]+w[i-1][j][k-1]-w[i-1][j-1][k-1] ;
     }
     }
int main()
{
    build();
int a,b,c,s;
while(scanf("%d%d%d",&a,&b,&c)!=EOF&&!(a==-1&&b==-1&&c==-1))
{   if(a<=0||b<=0|c<=0)
  s=1;
   else if(a>20||b>20||c>20)
     s=w[20][20][20];
 else
    s=w[a][b][c]  ;                                                     
 printf("w(%d, %d, %d) = %d\n",a,b,c,s);
}
return 0;
    }
    
方法二:规律法
#include<stdio.h>
#include<math.h>
int w(int a,int b,int c)
{
if(a<=0 || b<=0 || c<=0)
return 1;
else if(a>20 || b>20 || c>20)
return 1048576;       //  只要有一个数大于20,则返回w(20,20,20)=1048576,即2的20次方
else if(b>=a || c>=a)     //只要后面两个数有一个大于a,则返回2的a次方(开始超时后,打表得出的规律。。。)
return (double)pow((double)2,a);     //注意pow函数的强制类型转换,一不小心就编译错误了
else if(a<b && b<c)
return w(a,b,c-1)+w(a,b-1,c)-w(a,b-1,c);
else
return  w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, b-1, c-1) ;
}
int main()
{
int a,b,c;
double ans;
while(scanf("%d%d%d",&a,&b,&c)!=EOF)
{
if(a==-1 && b==-1 && c==-1)
break;
else
{
printf("w(%d, %d, %d) = ",a,b,c);
ans=w(a,b,c);
}
printf("%.0lf\n",ans);
}
return 0;
}




YOLOv8融合改进 更换检测头为Detect_DyHead同时添加C2f_DBB模块 yolov8独家训练测试融合网络结构,提供详细步骤详细代码,手把手教你在yolov8官方包中把检测头更换为Detect_DyHead检测头,并且将原始的C2f模块更换成C2f_DBB模块,提高检测精度,亲测在多个数据集上有涨点!!!!! 阅读详情

相关推荐

麒麟V10服务器多硬盘安装与分区实战:告别自动分区,手动分配/boot、swap和/根目录

本文详细介绍了麒麟V10服务器在多硬盘环境下的手动分区策略,包括/boot、swap和/根目录的优化分配方案。通过SSD与HDD混合存储架构的合理规划,提升系统性能和运维效率,适用于企业级定制化系统部署需求。

weixin_26976635的博客 405

Function Run Fun POJ - 1579

https://cn.vjudge.net/problem/POJ-1579 思路:记忆化搜索; #include <iostream> #include <cstring> #include <algorithm> #include <cstdio> #include <queue> #include <map> #...

newhonor 184

F5 Shape逆向工程实战:从美西南航空到xbk的风控突破

本文以美西南航空和xbk为例,深入剖析了F5 Shape风控系统的逆向工程实战。文章拆解了其核心防线,包括通信加密、JSVMP逆向分析和无孔不入的环境指纹检测,并分享了定位Header生成入口、模拟算法输出及构建真实浏览器环境的系统性方法与思路,为合规的技术研究与测试提供参考。

weixin_29327525的博客 1386

POJ 1579 Function Run Fun

分析:题意很简单,调用函数,根据a,b,c的值在递归调用函数。我们只要把w(a,b,c)从(1,1,1)计算到w(20,20,20)就行了,询问时直接就可以输出了。 # include int dp[25][25][25]; int Dp(int a,int b,int c) { if(a<=0||b<=0||c<=0) return 1;

572

UFS Link Startup全流程解析:从硬件初始化到链路稳定的5个关键阶段

本文详细解析了UFS Link Startup的全流程,从硬件初始化到链路稳定的5个关键阶段,包括初始化阶段、数据通道发现、数据通道重新对齐、链路启动收尾和能力交换阶段。通过时序分析、代码实现和实际案例,帮助开发者掌握UFS协议链路启动的技术细节,确保设备与主机之间的可靠通信。

weixin_30687051的博客 429

DSSAT模型实战:从基础配置到气候情景模拟

本文详细介绍了DSSAT模型在农业模拟中的应用,从基础配置到气候情景模拟的全流程实战指南。通过土壤-植物-大气连续体的动态关系建模,DSSAT能精准预测作物产量,误差率低至8%。文章涵盖气象数据处理、土壤参数配置、管理措施调控等核心技巧,并提供了Python脚本和可视化方法,助力农业科研与决策。

weixin_29264201的博客 1011

POJ - 1579 Function Run Fun

Function Run Fun POJ - 1579 AYIT-2021 609暑假集训第一周下 记忆化搜索和背包 We all love recursion! Don’t we? Consider a three-parameter recursive function w(a, b, c): if a <= 0 or b <= 0 or c <= 0, then w(a, b, c) returns: 1 if a > 20 or b > 20 or c >

武幻空的博客 196

携程旅行网景区,评论数据爬虫项目数据库保存附源码

这是一个专门用于爬取某旅行网景区评论数据的Python爬虫项目。项目采用模块化设计,支持MySQL数据库存储,具备完整的异常处理机制和反爬虫策略。

ymqzhy的博客 2568

Function Run Fun poj1579

题源:Function Run Fun poj1579 题目 We all love recursion! Don’t we? Consider a three-parameter recursive function w(a, b, c): if a <= 0 or b <= 0 or c <= 0, then w(a, b, c) returns: 1 if a > ...

wait 189

[Dify] HTTP 请求节点总是调不通?先把请求头、参数、变量和返回 JSON 拆开查

这篇文章围绕 Dify HTTP 请求节点调不通、接口能通但流程不稳定、返回 JSON 后续节点读不到等问题展开,从 Method、URL、Header、Body、变量映射和返回字段提取几个角度梳理排查顺序。适合正在把 Dify Workflow 接入企业微信、CRM、工单系统或内部接口的读者阅读,帮助你把接口调用从一次性跑通推进到可复用、可验证的业务流程。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 3943

基于sklearn实现LDA主题模型(附实战案例)

目录LDA主题模型1.LDA主题模型原理2.LDA主题模型推演过程3.sklearn实现LDA主题模型(实战)3.1数据集介绍3.2导入数据3.3分词处理 3.4文本向量化3.5构建LDA模型3.6LDA模型可视化 3.7困惑度 其实说到LDA能想到的有两个含义,一种是线性判别分析(Linear Discriminant Analysis),一种说的是概率主题模型:隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA)。 现在讨论的是主题模型

m0_64336780的博客 2万+

poj 1579 Function Run Fun

题目链接:http://poj.org/problem?id=1579 太强大了。。。把递归转成动态规划。。。 //Accepted 220 KB 0 ms C++ 1438 B #include #include #include #include using namespace std; const int M = 25; int dp[M][M][M]; void w() {

以现在的努力程度之低,谈狗屁的未来,屎的梦想!!! 946

poj 1579 Function Run Fun

We all love recursion! Don't we?Consider a three-parameter recursive function w(a, b, c):if a <= 0 or b <= 0 or c <= 0, then w(a, b, c) returns:1if a > 20 or b > 20 or c &g...

aysd68784的博客 148

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

POJ- 1579 Function Run Fun

POJ - 1579 Function Run Fun Time Limit: 1000MS   Memory Limit: 10000KB   64bit IO Format: %I64d & %I64u Submit Status Description We all love recursion! Don't we? 

qq_18661257的专栏 845

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

POJ-1579 Function Run Fun

Function Run Fun Time Limit: 1000MS   Memory Limit: 10000K       Description We all love recursion! Don't we?  Consider a three-parameter recursive function w(a, b, c)

JSure的代码库 1073

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

poj-1579 Function Run Fun

Function Run Fun Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14811   Accepted: 7656 Description We all love recursion! Don't we?  Consider a three-par

小超子的专栏 496

poj1579——Function Run Fun

记忆化搜索!#include #include #include using namespace std; int dp[21][21][21]; int w(int a,int b,int c) { if(a

r_ax的专栏 413
上一篇: POJ 1840 Eqs(简单hash入门)
下一篇: 大数相乘(简单模板)
CSUST_ACM
博客等级 码龄15年 42粉丝 127原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值