UVa 12034 Race (递推+组合数学)
题意:A,B两个人比赛,名次有三种情况(并列第一,AB,BA)。输入n,求n个人比赛时最后名次的可能数。
析:本来以为是数学题,排列组合,后来怎么想也不对。原来这是一个递推。。。
设n个人时答案为f(n)假设第一名有i(0< i <= n)个人,也就是有C(n, i)种,还剩下f(n-i)种可能,然后就so easy了。
f(n) = ΣC(n, i)f(n-i)。
代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#define mod %10056 using namespace std;
const int maxn = 1001;
int c[maxn+5][maxn+5], f[maxn+5]; void init(){
for(int i = 0; i < maxn; i++)
c[i][i] = 1, c[i][0] = 1;
for(int i = 1; i < 1001; i++)
for(int j = 1; j <= i; j++)
c[i][j] = (c[i-1][j-1] + c[i-1][j]) mod; } void solve(){
f[0] = 1, f[1] = 1, f[2] = 3;
for(int i = 3; i < 1001; i++)
for(int j = 1; j <= i; j++){
int k = (c[i][j]*f[i-j]) mod;
f[i] = (k+f[i]) mod;
}
} int main(){
memset(c, 0, sizeof(c));
memset(f, 0, sizeof(f));
init();
solve();
int n, T, cases = 0; cin >> T;
while(T--){
scanf("%d", &n);
printf("Case %d: %d\n", ++cases, f[n]);
}
return 0;
}
UVa 12034 Race (递推+组合数学)的更多相关文章
- UVa 12034 Race 递推?
一开始是想排列组合做的,排列组合感觉确实可以推出公式,但是复杂度嘛.. dp[i][j]表示有i只马,j个名次的方法数,显然j<=i,然后递推公式就很好写了,一只马新加进来要么与任意一个名次的马 ...
- UVa 12034 - Race(递推 + 杨辉三角)
链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- UVA 12034 Race (递推神马的)
Disky and Sooma, two of the biggest mega minds of Bangladesh went to a far country. They ate, coded ...
- UVA 12034 Race(递推)
递推,f[i = i个名次][j = 共有j个人] = 方案数. 对于新加入的第j个人,如果并列之前的某个名次,那么i不变,有i个可供并列的名次选择,这部分是f[i][j-1]*i, 如果增加了一个名 ...
- UVa 10943 (数学 递推) How do you add?
将K个不超过N的非负整数加起来,使它们的和为N,一共有多少种方法. 设d(i, j)表示j个不超过i的非负整数之和为i的方法数. d(i, j) = sum{ d(k, j-1) | 0 ≤ k ≤ ...
- UVa 10520【递推 搜索】
UVa 10520 哇!简直恶心的递推,生推了半天..感觉题不难,但是恶心,不推出来又难受..一不小心还A了[]~( ̄▽ ̄)~*,AC的猝不及防... 先递推求出f[i][1](1<=i< ...
- Uva 10446【递推,dp】
UVa 10446 求(n,bcak)递归次数.自己推出来了一个式子: 其实就是这个式子,但是不知道该怎么写,怕递归写法超时.其实直接递推就好,边界条件易得C(0,back)=1.C(1,back)= ...
- UVa 557 (概率 递推) Burger
题意: 有两种汉堡给2n个孩子吃,每个孩子在吃之前要抛硬币决定吃哪一种汉堡.如果只剩一种汉堡,就不用抛硬币了. 求最后两个孩子吃到同一种汉堡的概率. 分析: 可以从反面思考,求最后两个孩子吃到不同汉堡 ...
- BZOJ4451 [Cerc2015]Frightful Formula 多项式 FFT 递推 组合数学
原文链接http://www.cnblogs.com/zhouzhendong/p/8820963.html 题目传送门 - BZOJ4451 题意 给你一个$n\times n$矩阵的第一行和第一列 ...
随机推荐
- websocket使用
兼容性介绍 : https://caniuse.com/#search=websockets var websocket = null; //判断当前浏览器是否支持WebSocket if ('Web ...
- block元素和inline元素的特点
一.block元素的特点 1.处于常规流中时,如果width没有设置,会自动填充满父容器 2.可以设置height/width及margin/padding 3.处于常规流中时,布局在前后元素位置之间 ...
- Haskell语言学习笔记(38)Lens(1)
Lens Lens是一个接近语言级别的库,使用它可以方便的读取,设置,修改一个大的数据结构中某一部分的值. view, over, set Prelude> :m +Control.Lens P ...
- 如何勾选 servlet如何获取?
1.jsp中checkbox <form action="Test"> <% for(int i = 0 ; i < 10 ; i++){ %> &l ...
- JSP技术复习
JSP是一种运行在服务器端的脚本语言,是用来开发动态网页的技术,它是Java Web程序的开发重要技术 JSP页面主要由HTML和JSP代码构成,JSP代码是通过"<%"和& ...
- maven配置国内镜像库
https://www.cnblogs.com/xiongxx/p/6057558.html
- MySql LeftJoin On 与 Where的差异
[MySql LeftJoin On 与 Where的差异] 存在两张表: 分别插入数据: 下面的语句一与语句二会产生不同的结果: 语句一: 结果: 语句二: 结果: 为什么会存在差异,这和on与wh ...
- CentOS 6.3安装配置supervisor进程管理工具
1. Supervisor是一个C/S系统,它可以在类unix操作系统让用户来监视和控制后台服务进程的数量,一个很重要的功能就是监控服务器的主要后台进程,并在出现问题是自动重启. 2. 根据服务器上的 ...
- PIE结对编程
学习进度条 点滴成就 学习时间 新编写代码行数 博客量 学到知识点 第一周 8 0 0 了解软件工程 第二周 7 0 1 了解软件工程 第三周 11 0 1 用例图 第四周 6 25 0 结对编程 第 ...
- 岛屿的个数12 · Number of Islands 12
[抄题]: [思维问题]: [一句话思路]: [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入): [画图]: [一刷]: [二刷]: [三刷]: [四刷] ...