记录编号 |
255009 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[HAOI 2016]放棋子 |
最终得分 |
100 |
用户昵称 |
KCkwok |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.005 s |
提交时间 |
2016-04-26 18:12:21 |
内存使用 |
0.33 MiB |
显示代码纯文本
#include<cstdio>
#include<iostream>
using namespace std;
long long ans[2][1002];
int n;
int main(){
freopen("chess_2016.in","r",stdin);
freopen("chess_2016.out","w",stdout);
cin>>n;
ans[1][1]=0;
ans[0][1]=1;
for(int i=3;i<=n;i++){
for(int j=1;j<=1000;j++){
ans[i&1][j]=(ans[(i-1)&1][j]+ans[(i-2)&1][j])*(i-1);
}
for(int j=1;j<=1000;j++){
if(ans[i&1][j]>=10){
ans[i&1][j+1]+=(ans[i&1][j]/10);
ans[i&1][j]%=10;
}
}
}
int j;
for(j=1000;j>=1;j--)if(ans[n&1][j])break;
for(;j>=1;j--)cout<<ans[n&1][j];
return(0);
}