这道题也要用到错排的知识。
题目只要求他答对一半或以上就算过关,换句话说就是猜对了一半以上,其他的全部算是错排。所以就是求1~n/2每项的错排数再乘以组合数(函数c(n,m)求组合数)之和。
HDOJ2049这道题也是这个类型的
//hdoj2068.cpp
#include<iostream>
using namespace std;
__int64 c(int n,int m){
int a=1;
if(m==0)
return 1;
for(int i=1;i<=m;i++){
a=a*(n-i+1);
a=a/i;//求组合数的一个技巧
}
return a;
}
int main(){
int n,i,j;
__int64 sum,a[30];
a[1]=0; a[2]=1;
for(i=3;i<=12;i++)
a[i]=(i-1)*(a[i-1]+a[i-2]);//错排公式
while(scanf("%d",&n),n){
sum=1;
for(i=1;i<=n/2;i++)
sum=sum+c(n,i)*a[i];
printf("%I64d\n",sum);
}
return 0;
}
分享到:
相关推荐
HDOJ题目分类HDOJ题目分类HDOJ题目分类
hdoj1001标程
ACM ICPC HDOJ1002
ACM ICPC HDOJ1001
hdoj上的资源,代码有注释,很不错的哦
hdoj1004,解题代码,答案代码,欢迎下载
ACM ICPC HDOJ1003
杭州电子科技大学hdoj1002,大整数相加问题
ACM ICPC HDOJ1008
杭州电子科大HDOJ
c语言 最短路 是hdoj上的一个最短路问题,写的很牛
一些HDOJ上的DP题目的小总结,但愿能帮到那些想专攻DP的人吧
ACM ICPC HDOJ1000
hdoj解题代码,题目为1000-1050
codj,hdoj的源码(50-60题)
HDOJ 源代码 包含几百道HDOJ题目源码
hdoj 2013 多校训练3标程+解题报告
hdoj1005 Number Sequence, 杭州电子科技大学oj题目代码
杭电OJ(1000-1099) AC 代码
HDOJ使用指南——公开版.docHDOJ使用指南——公开版.docHDOJ使用指南——公开版.doc