博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 1465 不容易系列之一
阅读量:5020 次
发布时间:2019-06-12

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

题意:n封信全部装错的种数

我的理解:ans[n] = n! - c[n][i]*ans[n-i]             (i = 1,2,3......n)。

code:

#include 
using namespace std;int main(){ long long n,ans[21],a[21],c[21][21]; a[0] = 1; a[1] = 1; for(int i = 2;i < 21;i ++){ a[i] = i * a[i-1]; //cout << i << " "<< a[i] << endl; } for(int i = 1;i < 21;i ++) for(int j = i;j > 0;j --){ c[i][j] = a[i]/(a[j]*a[i-j]); //cout << i <<" " << j << " " << c[i][j] << endl; } ans[0] = 1; ans[1] = 0; for(int i = 2;i < 21;i ++){ ans[i] = a[i]; for(int j = 1;j <= i;j ++){ ans[i] -= c[i][j] * ans[i-j]; } } while(cin >> n){ cout << ans[n] << endl; } return 0;}

正规:

基本形式:d[1]=0;   d[2]=1

递归式:d[n]= (n-1)*( d[n-1] + d[n-2])

著名的错排公式。

#include 
using namespace std;int main(){ long long n,ans[21]; ans[1]= 0;ans[2] = 1; for(int i = 3;i < 21;i ++) ans[i] = (i-1) * (ans[i-1]+ans[i-2]); while(cin >> n) cout << ans[n] << endl; return 0;}

 

转载于:https://www.cnblogs.com/zhangjialu2015/p/5382464.html

你可能感兴趣的文章
深入理解jsonp跨域请求原理
查看>>
regsvr32注册COM组件失败
查看>>
jmeter,CSV数据加载、数据库连接、正则
查看>>
MySQL学习点滴 --分区表
查看>>
4.6.1 测试基础
查看>>
洛谷 P2486 [SDOI2011]染色
查看>>
oo第三单元总结
查看>>
leetcode : Count and Say [基本功]
查看>>
洛谷 P2485 [SDOI2011]计算器 解题报告
查看>>
Slickflow.NET 开源工作流引擎基础介绍(三) -- 基于HTML5/Bootstrap的Web流程设计器
查看>>
Node教程
查看>>
java将字段映射成另一个字段,关于 接口传参 字段不对应转换
查看>>
Redis
查看>>
HTTP(一)工作机制
查看>>
条形码扫描枪数据读取的问题
查看>>
健壮的 Java 基准测试
查看>>
phpstorm查看类的继承关系
查看>>
Amd,Cmd, Commonjs, ES6 import/export的异同点
查看>>
Ubuntu 18.04安装arm-linux-gcc交叉编译器
查看>>
django drf 深入ModelSerializer
查看>>