1st Jilin University ACM International Collegiate Programming Contest
In this problem, you are to write a program to make the value of the binomial function:
where n and m are integers.
Input Specification
The input consists of several pairs of n and m(0<=n, m<=30). The end of input is marked by n=m=0, which should not be processed.
Output Specification
For each pair of n and m, you should print a line like this: "Binom(n, m) = v", where n, m and v have to be replaced by the values of n, m and v.
Sample Input
5 5
7 0
5 9
0 0
Sample Output
Binom(5, 5) = 1
Binom(7, 0) = 1
Binom(5, 9) = 32
/*
包含两个参数的递归
三个版本的递归
普通递归
带有备忘录(或者剪枝)
非递归
*/
#include <stdio.h>
int array[31][31];
/*
超时
*/
int Binom(int n,int m)
{
if(n == 0 || n == m || m == 0)
return 1;
else
return Binom(n-1,m) + Binom(n-1,m-1);
}
/*
带有备忘录的递归,类似动态规划
*/
int binom(int i, int j){
if(i==0||j==0||i==j)
return 1;
else if(array[i][j]) //加一个剪枝
return array[i][j];
else
return array[i][j]=binom(i-1,j-1) + binom(i-1,j);
}
/*
非递归版
在JOJ上貌似这个版本不比那个剪枝的快
*/
int binomAd(int n,int m)
{
int i;
for ( i=0;i<=30;++i)
{
array[i][0]=1;
array[i][i]=1;
array[0][i]=1;
}
for ( i=1;i<=30;++i)
for (int j=1;j<=30;++j)
{
if (j!=i)
array[i][j]=array[i-1][j]+array[i-1][j-1];
}
return array[n][m];
}
int main()
{
int n,m;
while(scanf("%d%d",&n,&m),n !=0||m != 0)
{
int t = binomAd(n,m);
printf("Binom(%d, %d) = %d\n",n,m,t);
}
return 0;
}
相关推荐
【标题】:“JOJ上做的一些ACM试题” 在计算机科学领域,ACM(Association for Computing Machinery)国际大学生程序设计竞赛是一项备受瞩目的比赛,旨在提升大学生的算法设计、问题解决以及团队协作能力。JOJ...
joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考 joj 部分题目答案 自己做的 仅供参考
【标题】"joj acm 部分习题解答"揭示了这是一份与JOJ(Judge Online Job)和ACM(国际大学生程序设计竞赛)相关的资源,主要是作者对于某些题目的解题思路和代码实现。JOJ是用于在线评测编程竞赛题目的一种平台,而...
【标题】"JOJ-jilin-university--acm.rar_joj" 提供的是吉林大学JOJ在线判题系统的编程竞赛代码集,主要用于帮助初学者入门。 【描述】中的信息表明,这个压缩包内的代码样例是专门为在JOJ平台上进行编程训练的学生...
操作系统中的页面置换算法是内存管理的重要组成部分,尤其是在虚拟内存系统中。先进先出(First In First Out,简称FIFO)页面置换算法是一种简单的页面置换策略,它的基本思想是:当需要淘汰一个页面时,选择最早...
"joj_1237"和"joj10"可能分别对应JOJ平台上的两个具体题目编号,1237号问题和编号为10的一组题目。这些标签有助于分类和检索这些源代码,便于查找特定题目或比赛的解决方案。 在压缩包内的文件名列表中,只有一个...
Java 开源项目 Joj 是一个致力于为 Java 源代码提供对象化表示的库,它类似于 JDOM 在处理 XML 文档中的角色。Joj 的设计目标是为开发者提供一种更直观、更方便的方式来操作和解析 Java 代码,使得在处理大量 Java ...
语言:Français Etre au courant quand JoJ est en live,策划人...约翰·奎因·伊斯特·布鲁和克林·德集团的非官方网站 Développéepar Azamir-倾倒fuclamation defonctionnalité,不满意的联系人Azamir#1089。
根据给定的信息,本文将详细解释“acm joj 1600”中的两种大数取模运算方法。此问题主要关注如何高效地计算形如 \(a^b \mod m\) 的表达式,这对于处理大数据或进行密码学运算非常重要。 ### 大数取模运算 #### ...
吉林大学 joj 1000-2645题代码,嘿嘿,大家就不用在花JPOINT买代码了,祝ACMer实现自己的心愿
JOJ 1424题目,即硬币兑换问题,要求参与者通过编程实现一种算法,它能够找到使用最少数量硬币凑成特定金额的方法。动态规划作为一种有效的算法策略,被广泛应用于此类问题的解决之中。 动态规划,简称为DP,是解决...
4. **系统的持续改进**:系统不断进行功能优化和增强,如支持特殊评判、增加状态页面、语言检查等,为用户提供更完善的编程环境。 综上所述,这份吉林大学ACM题集不仅为学生提供了一个全面而有挑战性的训练资源,...
这个题其实现在想起来也不知道是怎么就给ac的。
该mod基于荒木飞吕彦的JoJo的奇妙冒险漫画和动漫系列。 这个mod也受到KnightDemon的1.12 mod 极大启发。 这个mod的目的是要从专营权中尽可能多地增加Minecraft,该mod目前仅包含Stand能力,其他能力(Hamon,...
4. **现场管理目标**:根据JOJ59—59安全检查标准和重庆市建筑工地文明施工标准,对施工现场进行规范化管理,争取成为重庆市的安全文明施工示范工地。 5. **安全管理目标**: - **安全教育目标**:建立安全生产...
furystudios 普尔维·扎达塔克(Prvi zadatak) ...DroppingOff - radnikhodajućidolazi做pripadajuće科萨雷(izvedeno kroz provjeru tagova kutije)我卡达joj JE dovoljno blizu,fizičkiJE lan
Este Projeto签证是由estoque进行的,它是由mer mercadorias uma determinada empresa sejam averiguadas和atualizadas ... 2021年1月20日,由JoséCláudiodeAraújoJúnior和Annielly Ferreira de Sousa所设计。
大智慧最新安装包,老的已经过期不能查询个人自选股,所以推荐最新的大智慧给大家安装