神、上帝以及老天爷 HDU - 2048(错排)

神、上帝以及老天爷

HDU - 2048

错排~

c[n] = (n-1) * (c[n-1] + c[n-2]);

c[1] = 0; c[2] = 1;

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 #define ll long long
 4 const int mod = 20090126;
 5 const int maxn = 21;
 6 ll c[maxn], f[maxn];
 7 void init(){
 8     c[1] = 0;
 9     c[2] = 1;
10     for(int i = 3; i < maxn; i++) {
11         c[i] = (i-1) * (c[i-1] + c[i-2]);
12     }
13     f[1] = 1;
14     for(int i = 2; i < maxn; i++) f[i] = f[i-1] * i;
15 }
16 int main(){
17     int n;
18     int t;
19     scanf("%d", &t);
20     init();
21     while(t--) {
22         scanf("%d", &n);
23         printf("%.2lf",c[n]*100.0/f[n]);
24         puts("%");
25     }
26 }

时间: 2024-11-07 11:02:38

神、上帝以及老天爷 HDU - 2048(错排)的相关文章

HDU 2048 错排

错排递推公式: d(n) = (n-1)*(d[n-1]+d[n-2]): 证明:将第n个元素放到第k处,第k处的元素如果放到第n处,就是d(n-2),否则,先假设放到第n处,然后错排,就是d(n-1): 1 #include <bits/stdc++.h> 2 3 using namespace std; 4 5 double fac[22] = {1,1}; 6 double d[22] = {0,0,1,2}; 7 8 int main() 9 { 10 for(int i=1;i<

HDU 2048 神、上帝以及老天爷(DP+错序排+组合数学)

神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 32673    Accepted Submission(s): 13367 Problem Description HDU 2006'10 ACM contest的颁奖晚会隆重开始了! 为了活跃气氛,组织者举行了一个别开生面.奖品丰厚的抽奖活动,这个活动的具体要求是这

杭电2048错排

错排公式是f(n)=(n-1)(f(n-1)+f(n-2)) 不过还是稍稍的分析一下这个入门题 就像一个将信件放入不同信箱的例子, 我们先考虑前n-1的情况 1.前n-1个信件全部都放错了,那么我们考虑n个的情况时,只需要将第N个信件与前n-1个信件的任意一 个做一个交换就ok了,这个结果是(n-1)*f(n-1) 2.然后再考虑前n-1个并没有完全放错,那么要想使第n个信封加入时和和其中的某一个信封进行交换可 以实现n个信件全部放错的情况,那么必须前n-1个当中有且只有一个信件是放正确的,就是

hdu 4535 错排

题意:错排 链接:点我 百年难得一遇大水题 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<cstring> 5 #include<cmath> 6 #include<queue> 7 #include<map> 8 using namespace std; 9 #define MOD 1000000007 10 const

HDU 2048 神、上帝以及老天爷(错排)

神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 26440    Accepted Submission(s): 11000 Problem Description HDU 2006'10 ACM contest的颁奖晚会隆重开始了! 为了活跃气氛,组织者举行了一个别开生面.奖品丰厚的抽奖活动,这个活动的具体要求是这

hdoj 2048 神、上帝以及老天爷(递推,全错排)

神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 32717    Accepted Submission(s): 13379 Problem Description HDU 2006'10 ACM contest的颁奖晚会隆重开始了! 为了活跃气氛,组织者举行了一个别开生面.奖品丰厚的抽奖活动,这个活动的具体要求是这

杭电 HDU ACM 2048 神、上帝以及老天爷

神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 26034    Accepted Submission(s): 10826 Problem Description HDU 2006'10 ACM contest的颁奖晚会隆重开始了! 为了活跃气氛,组织者举行了一个别开生面.奖品丰厚的抽奖活动,这个活动的具体要求是这

JAVA HDU 2048 神、上帝以及老天爷

题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2048 一开始用的System.out.printf("%.2f%%\n", result)输出,PRESENTATION ERROR.  换成System.out.println(String.format("%.2f", result)+"%")就好了 1 package hdu; 2 3 import java.io.BufferedInputS

hdu 神、上帝以及老天爷 java

问题: 递推,但是a[i]=(a[i-1]+a[i-2])+(i-1)公式没有推出来. 在递推时,for循环约束值用的输入的m导致数组没有储存数. 在算阶乘时for循环中将i和j用混了,导致没有数输出. 四舍五入取n位:double l=1315.1354 String s=String.format("%.2f", l):syso s: 神.上帝以及老天爷 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32