博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVA-12034 Race 解题思路【数学,递推】
阅读量:4048 次
发布时间:2019-05-25

本文共 844 字,大约阅读时间需要 2 分钟。

题目大意:

n匹马比赛,计算通过终点的可能情况的数量 (可以并列)

(结果对10056取模)

思路:

个人感觉这种题需要找到一种“继承”关系。

就比如这题:用 f[i] 表示有 i 匹马的,假如有n个马中,有一个马是第一的话,那么剩下的马组成的情况就是 f[n-1],
进一步考虑,假设有m匹马第一,那剩下的就是 f[n-m] 。所以m匹马第一的总情况就是Cnm *f[n-m]。

具体过程

有了上述思路就很简单了,求出组合数,然后进行递推。

代码:

#include
#include
#include
using namespace std;const int mod=10056;int n,c[1001][1001],f[1001];int main(){
scanf("%d",&n); f[0]=f[1]=1;c[1][1]=c[1][0]=1; for(int i=2;i<=1000;++i){
c[i][0]=c[i][i]=1; for(int j=1;j<=i;++j){
c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod; f[i]=(f[i]+(f[i-j]*c[i][j])%mod)%mod; } } for(int i=1;i<=n;++i){
int x; scanf("%d",&x); printf("Case %d: %d\n",i,f[x]); } return 0;}

一些思考

比赛的时候,知道把一个大问题给分解成小问题,但是没有想到如何分解。

现在想想,要分的小情况一定要是之前求出结果的,否则会全部木大。

日常中二

就这一直努力下去吧!

在这里插入图片描述

转载地址:http://tuuci.baihongyu.com/

你可能感兴趣的文章
python_time模块
查看>>
python_configparser(解析ini)
查看>>
selenium学习资料
查看>>
<转>文档视图指针互获
查看>>
从mysql中 导出/导入表及数据
查看>>
HQL语句大全(转)
查看>>
几个常用的Javascript字符串处理函数 spilt(),join(),substring()和indexof()
查看>>
javascript传参字符串 与引号的嵌套调用
查看>>
swiper插件的的使用
查看>>
layui插件的使用
查看>>
JS牛客网编译环境的使用
查看>>
9、VUE面经
查看>>
关于进制转换的具体实现代码
查看>>
Golang 数据可视化利器 go-echarts ,实际使用
查看>>
mysql 跨机器查询,使用dblink
查看>>
mysql5.6.34 升级到mysql5.7.32
查看>>
dba 常用查询
查看>>
Oracle 异机恢复
查看>>
Oracle 12C DG 搭建(RAC-RAC/RAC-单机)
查看>>
Truncate 表之恢复
查看>>