2017.10.9 放棋子 思考记录
来源:互联网 发布:c语言char 编辑:程序博客网 时间:2024/06/09 19:34
。这个题根本没想到错排,但它似乎离散为斜对角之后很有规律,于是打表,推出了式子。。。
经常手玩式子,前几天的测试根本没想到卡特兰数然后用组合数硬生生凑了出来,然后这个题的错排。。
f表示答案 g表示当前矩阵第一行第一个可以放的点的答案
f【i】=g【i】*(i-1)
g【i】=g【i-1】*(i-2)+f【i-2】
注意要用高精,还要开足位,第一遍交60、、、
码:
#include<iostream>#include<cstdio>using namespace std;int ans,n,i,g[205][2005],f[205][2005],j,laji,jw;int main(){scanf("%d",&n);for(i=1;i<=n;i++)for(j=1;j<=n;j++)scanf("%d",&laji);f[2][1]=1;g[2][1]=1;f[3][1]=2;g[3][1]=1;f[2][0]=1;g[2][0]=1;f[3][0]=1;g[3][0]=1;for(i=4;i<=n;i++){//g[i]=g[i-1]*(i-2)+f[i-2];jw=0;g[i][0]=g[i-1][0];for(j=1;j<=g[i-1][0];j++){int tmp=jw;jw=(g[i-1][j]*(i-2)+jw)/10;g[i][j]=(g[i-1][j]*(i-2)+tmp)%10;}while(jw>0){g[i][++g[i][0]]=jw%10;jw/=10;}int sx=max(g[i][0],f[i-2][0]);jw=0;g[i][0]=sx;for(j=1;j<=sx;j++){int tmp=jw;jw=(g[i][j]+f[i-2][j]+jw)/10;g[i][j]=(g[i][j]+f[i-2][j]+tmp)%10;}if(jw>0)g[i][++g[i][0]]=jw;//f[i]=g[i]*(i-1);jw=0;f[i][0]=g[i][0];for(j=1;j<=g[i][0];j++){int tmp=jw;jw=(g[i][j]*(i-1)+jw)/10;f[i][j]=(g[i][j]*(i-1)+tmp)%10;}while(jw>0){f[i][++f[i][0]]=jw%10;jw/=10;}}for(i=f[n][0];i>=1;i--)printf("%d",f[n][i]);}
阅读全文
0 0
- 2017.10.9 放棋子 思考记录
- 放棋子
- 放棋子
- 放棋子
- 放棋子
- 放棋子
- 放棋子
- 放棋子
- 放棋子--蓝桥杯
- 取放棋子问题
- BZOJ4563 [Haoi2016]放棋子
- bzoj4563【HAOI2016】放棋子
- 4563: [Haoi2016]放棋子
- BZOJ3294: [Cqoi2011]放棋子
- 【JZOJ 3892】 放棋子
- [JZOJ3892] 放棋子
- BZOJ3294: [Cqoi2011]放棋子
- BZOJ4563 [Haoi2016]放棋子
- 知足知不足 有为有不为
- 【力荐】Select查询语句中LIKE关键词的优化方法分析
- linux 常用命令汇总
- gulp pipe
- 选择排序(java实现)
- 2017.10.9 放棋子 思考记录
- NullPointerException 与 Java 自动装箱拆箱机制
- IDA动态调试Android的DEX文件
- RMAN-08137
- 图解原型链(初识篇)
- JavaScript 表单处理
- 欢迎使用CSDN-markdown编辑器
- java实现导出Excel
- Angular2 图片URL自解码