蒟蒻求救

学术版

题面: 题目背景 我们经常容易犯些很弱的错误,例如把书放错书架,但是如果把所有的书都放错,那也是件不容易的事情,下面就是关于这样的问题 题目描述 小十四在整理书架的时候,有将n本书和n个书架。1号书应该放在1号书架,2号书应该放在2号书架,如此类推,但是全部都放错,也是够奇葩的,请问这种奇葩的情况有多少种。例如:两本书1和2号,分别放错只有一种情况,就是1号书放在2号书架,2号书放在1号书架,所以方案为1种。 输入格式 一个正整数n,表示书的本数或者书架的个数。 输出格式 一个整数,代表有多少种情况。 输入输出样例 输入 #1 复制 2 输出 #1 复制 1 说明/提示 数据范围: 50%的数据 n<=20 100%的数据 n<=50
by yszshs1 @ 2020-02-24 23:11:44


样例:输入2,输出1
by yszshs1 @ 2020-02-24 23:12:09


@[yszshs1](/user/72662) 不就是[这道题](https://www.luogu.com.cn/problem/P1595)吗?
by 樱雪喵 @ 2020-02-24 23:14:31


用错排公式啊
by 樱雪喵 @ 2020-02-24 23:14:51


@[慕蓉樱雪](/user/234074) 对啊,我就是用公式的,加了高精,不过有三个点RE
by yszshs1 @ 2020-02-24 23:20:25


@[慕蓉樱雪](/user/234074) 她用的是错排公式啊 就是加了高精度而已awa
by XeCtera @ 2020-02-24 23:20:37


大佬求救啊
by yszshs1 @ 2020-02-24 23:21:40


@[yszshs1](/user/72662) ```cpp a[i][0]=s[0]+s1[0]+1; int x=0,j,l; for (j=1;j<=s[0];j++) { int x=0; for (l=1;l<=s1[0];l++) { a[i][j+l-1]+=s[j]*s1[l]+x; x=a[i][j+l-1]/10; a[i][j+l-1]%=10; } a[i][j+s1[0]]=x; // if (i==n) printf("x=%d ",x); } ``` 这个x重复定义了?
by XeCtera @ 2020-02-24 23:25:45


@[HoneyLemon](/user/38785) 重复定义会有什么问题吗
by yszshs1 @ 2020-02-25 09:47:51


@[yszshs1](/user/72662) 可能会导致最初定义的x值始终没被修改吧 可能会有风险
by XeCtera @ 2020-02-25 09:51:02


| 下一页