洛谷P1655 小朋友的球
来源:互联网 发布:苏梅岛 知乎 编辑:程序博客网 时间:2024/04/27 17:49
链接
https://www.luogu.org/problem/show?pid=1655
题解
f[i][j]表示将i个求放入j个盒子的方案数,考虑第i个球的加入,这个球可能自己一个盒子,剩下的i-1个球放在j-1个盒子中;也可以先把i-1个求放在j个盒子里,在把这个球放进任意一个盒子;综上f[i][j]=f[i-1][j-1]+f[i-1][j]*j。
高精度。
代码
//组合数+高精度 #include <cstdio>#include <algorithm>#define maxn 110using namespace std;struct bignum{int num[500], len;bignum(){for(int i=0;i<500;i++)num[i]=0;len=1;}int& operator[](int x){return num[x];}void show(){int i;for(i=len;i;i--)printf("%d",num[i]);}}f[maxn][maxn];bignum operator+(bignum a, bignum b){bignum ans;int i;ans.len=max(a.len,b.len);for(i=1;i<=ans.len;i++)ans[i]=a[i]+b[i];for(i=1;i<=ans.len;i++)ans[i+1]+=ans[i]/10,ans[i]%=10;if(ans[ans.len+1])ans.len++;return ans;}bignum operator*(bignum a, int b){bignum ans;int i;for(i=1;i<=a.len;i++)ans[i]=a[i]*b;for(i=1;i<500;i++)ans[i+1]+=ans[i]/10,ans[i]%=10;for(i=499;ans[i]==0;i--);ans.len=i;return ans;}int main(){int N, M, i, j;f[0][0].len=1;f[0][0][1]=1;for(i=1;i<=100;i++)for(j=1;j<=i;j++){f[i][j]=f[i-1][j-1]+f[i-1][j]*j;}for(;~scanf("%d%d",&N,&M);printf("\n"))f[N][M].show();return 0;}
0 0
- 洛谷P1655 小朋友的球
- [poj]P1655树的重心
- 洛谷 P1982 小朋友的数字
- 长大了的小朋友
- 愤怒的小朋友+热浪
- 唉,可爱的小朋友
- 2552: 小朋友的数字
- 小朋友
- Codevs P1655 物流运输
- [转]小朋友的经典造句
- 六一儿童节,悼念天堂的小朋友
- noip2013小朋友的数字(dp)
- 【noip2013普及】 小朋友的数字
- NOIP 2013 小朋友的数字
- NOIP2013(3)小朋友的数字
- 【趣味题】小朋友的数量
- 常感冒的小朋友的应对
- 公交车上:小朋友心中的教师节
- 关于powerdesigner导入数据库对象有双引号问题
- iOS直播实用篇(手把手教)
- kafka视频观看小结
- C#辗转相除法求最大公约数与最小公倍数
- Hadoop学习笔记—7.计数器与自定义计数器
- 洛谷P1655 小朋友的球
- SecureCRT-vim颜色显示问题
- quartz定时任务解决service为空时的解决方案
- Echarts采坑日记之tooltip
- 实用技巧!从未见过如此简单粗暴的Hibernate教程
- MySQL中SELECT+UPDATE并发更新问题
- 最短路径--九度1008.[Dijkstra]
- 如何查看Windows下端口占用情况
- 简易管理器(驱动方式)