南邮 OJ 1223 多重幂计数问题
来源:互联网 发布:apache ant 1.9.7.zip 编辑:程序博客网 时间:2024/06/06 01:41
多重幂计数问题
时间限制(普通/Java) : 1000 MS/ 3000 MS 运行内存限制 : 65536 KByte
总提交 : 91 测试通过 : 34
总提交 : 91 测试通过 : 34
比赛描述
设给定n个变量x1,x2,…,xn。将这些变量依序作底和各层幂,可得n重幂如下
这里将上述n重幂看作是不确定的,当在其中加入适当的括号后,才能成为一个确定的n重幂。不同的加括号方式导致不同的n重幂。例如,当n=4时,全部4重幂有5个。
对n个变量计算出有多少个不同的n重幂。
输入
输入有多行,每一行提供一个数n。
输出
输出多行。对于输入中每一行,在一行中输出不同n重幂的数目。
样例输入
4
样例输出
5
提示
undefined
题目来源
算法设计与实验题解
#include<iostream>#define N 10001using namespace std;int a[N]={0};int len=1;void multiply(int n){int i;for(i=0;i<len && i<N;++i){a[i] *= n;}for(i=0;i<len && i<N;++i){if(a[i]>=10){a[i+1] += a[i]/10;a[i] %= 10;}}while(a[len]){++len;a[len] += a[len-1]/10;a[len-1] %= 10;}}void divide(int n){for(int i=len-1;i;--i){a[i-1] += (a[i]%n)*10;a[i] /= n;}a[0] /= n;while(a[len-1]==0){--len;}}void print(){int i=len-1;while(i>=0){printf("%d",a[i--]);}}void C(int n,int m){if(n-m<m){m = n-m;}for(int i=0;i<m;++i){multiply(n--);}while(m){divide(m--);}}int main(){int n;while(scanf("%d",&n)!=EOF){memset(a,0,N);a[0] = 1;C(2*n,n);divide(n+1);print();printf("\n");}}
0 0
- 南邮 OJ 1223 多重幂计数问题
- 多重幂计数问题
- 多重幂计数问题
- 多重幂计数问题
- 多重幂计数问题
- 【dp】多重幂计数问题
- 南邮 OJ 1222 序关系计数问题
- 51nod oj 1086 背包问题 V2 【多重背包问题】
- 多重集组合计数
- 南邮 OJ 1050 数的计数
- 多重幂计算问题
- 南京邮电oj 1222序关系计数问题
- 【OJ】---E---多重继承
- OJ E多重继承
- YTU-OJ-多重继承
- 挑战程序设计竞赛2.3.3 有关计数问题的DP 多重集组合数
- 计数问题
- 计数问题
- 防止点击浏览器后退按钮 后退页面的js
- hdu 1312 深搜
- 学习scheme的笔记
- 生成随机数
- TCP的滑动窗口与拥塞窗口
- 南邮 OJ 1223 多重幂计数问题
- 学习笔记:Shell脚本-2015-08-05
- js学习二:按钮显示或隐藏下拉菜单简单案例
- Binder机制(中篇)
- java-解决随机类型概率问题
- 经典SQL语句大全
- [备注]HDOJ题目分类
- UDP并发服务器模型 一
- 启动apk的常用方法