UVa 10943 How do you add?【递推】
2024-08-27 20:30:13
题意:给出n,k,问恰好有k个不超过n的数的和为n的方案数有多少
可以隔板法来做 现在有n个小球放到k个盒子里面,盒子可以为空
那么就是n-k+1个缝隙,放上k-1个隔板(k-1个隔板就分成了k份) 所以总的方案数为 C(n+k-1,k-1)
所以可以转化为C(i,j)=C(i-1,j)+C(i,j-1)
即为d[i][j]=d[i-1][j]+d[i][j-1],
d[i][j]表示j个数的和恰为i的方案数
#include<iostream>
#include<cstdio>
#include<cstring>
#include <cmath>
#include<stack>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<algorithm>
using namespace std; typedef long long LL;
const int INF = (<<)-;
const int mod=;
const int maxn=; int d[][]; int main(){
int k,n;
memset(d,,sizeof(d));
for(int i=;i<=;i++) d[][i]=; for(int i=;i<=;i++){
for(int j=;j<=;j++){
d[i][j]=(d[i-][j]+d[i][j-])%mod;
}
} while(scanf("%d %d",&n,&k)!=EOF&&n&&k){
printf("%d\n",d[n][k]);
}
return ;
}
最新文章
- 使用Lua脚本语言开发出高扩展性的系统,AgileEAS.NET SOA中间件Lua脚本引擎介绍
- matlab mesh visualization
- Matlab判断鼠标移动
- (笔记)Linux内核学习(七)之内核同步机制和实现方式
- linux+jre+apache+mysql+tomcat调优
- Selenium - 实现网页元素拖拽
- 软件测试技术(三)——使用因果图法进行的UI测试
- Linux下软件的安装
- POJ 1845
- ECMAScript 6 笔记(五)
- Hibernate中cascade属性的区别
- Python列表,字典和字符串操作
- git入门笔记汇总——(廖雪峰博客git入门)
- Dynamics 365新特性介绍:在视图中显示图片和提示
- Golang入门教程(九)复合数据类型使用案例二
- Objective-C 【init/initWithFrame调用机制】
- 对于src路径问题,深层理解的实践。且对于输出流write()两个方法的源码阅读。
- 【linux C】C语言中常用的几个函数的总结【二】
- C# AOP框架入门(转)
- 发布网站时应该把debug设置false
热门文章
- Web前端必须规避的8个误区
- 自定义一个简单的web框架
- How an Event Enters a Cocoa Application
- 路飞学城Python-Day25
- 7、A Design of Group Recommendation Mechanism Considering Opportunity Cost and Personal Activity Using Spark Framework---使用Spark框架的基于机会成本以及个人活动群组推荐机制
- 2、Attentive Group Recommendation----注意力集中的群组推荐
- BZOJ 1856 [SCOI2010]生成字符串 (组合数)
- Linux系统串口接收数据编
- pytorch 6 batch_train 批训练
- [terry笔记]GoldenGate_迁移同步_主库零停机