P1595 信封问题

Posted mary-sue

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1595 信封问题相关的知识,希望对你有一定的参考价值。

题目描述

某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。

输入输出格式

输入格式:

 

一个信封数n(n<=20)

 

输出格式:

 

一个整数,代表有多少种情况。

 

输入输出样例

输入样例#1: 复制
2
输出样例#1: 复制
1
输入样例#2: 复制
3
输出样例#2: 复制
2

 

太废了,,,

于是找水题刷。。。

看到这个,,就知道是国庆汇思学颜老师讲的错排问题

https://www.cnblogs.com/Mary-Sue/p/9735348.html

往下拉,,就能看到了,,

其实就是斐波那契的延伸嘛,,

公式:

技术分享图片

套上就好了,,

然后,,,、

靠,,,什么鬼bug,,

cin,cout,,,不在库里。。。

还爆long long???不可能吧,,

但就是wa了,,,

没办法就用unsigned long long了,,,

然后就能a了,,,

又想起最后一天hgr老师说牛客那个第一题,,精度问题,,

把long long改成double应该可以多拿分,,

好像是,,,

但改成double后90,,,不知道为什么会wa最后那两个点,,,,

。。。

还是unsigned。。。

dev跟luogu同时bug了???

……无语。。

代码: 

#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;

int n;
unsigned long long f[22];

int main()
{
	scanf("%d",&n);
	if(n==1)
	{
		printf("0");
		return 0;
	}
	if(n==2)
	{
		printf("1");
		return 0;
	}
	f[1]=0;
	f[2]=1;
	for(int i=3;i<=n;++i)
		f[i]=(i-1)*(f[i-1]+f[i-2]);
	printf("%llu",f[n]);
	return 0;
}

 如果你不开心,那我就把右边技术分享图片这个帅傻子分享给你吧,  

你看,他这么好看,那么深情的望着你,你还伤心吗?  

真的!这照片盯上他五秒钟就想笑了。  

一切都会过去的。     

 

以上是关于P1595 信封问题的主要内容,如果未能解决你的问题,请参考以下文章

洛谷P1595 信封问题

P1595 信封问题

洛谷P1595 信封问题

洛谷P1595 信封问题

洛谷 P1595 信封问题(周五杂题选讲)(错排公式)

俄罗斯套娃信封问题