。这个题根本没想到错排,但它似乎离散为斜对角之后很有规律,于是打表,推出了式子。。。

经常手玩式子,前几天的测试根本没想到卡特兰数然后用组合数硬生生凑了出来,然后这个题的错排。。

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]);
}

2017.10.9 放棋子 思考记录相关推荐

  1. 2017.10.29 染色方案 思考记录

    这个题数据特别小,于是想到状压多维之流. 状压是比较麻烦的,虽然也能写,但多维dp明显要好写一些 根据15去设计状态是没有前途的,因为按颜色分一定会MLE 这时就考虑根据5分,这样不同颜色就离散了,就 ...

  2. 2017.10.24 上升序列 思考记录

    终于有会做的题了... 一开始想用正常的lis ,然后从前往后扫, 由于最优查询区间在序列上是按顺序单调递增的,所以想记录每个点取哪个值跳到哪,这样是n*m logn的 然后发现既然是单调递增的那直接 ...

  3. 2017.10.7 括号序列 思考记录

    这个题看起来很简单,但细节比较麻烦.参考完别人的代码后才想出自己的解法的.. 一开始认为已匹配的括号是可以直接消的,所以就只维护了两个变量 但还有区间取反.. 由于和已配对的括号的顺序有关,所以不是很 ...

  4. 2017.10.30 覆盖问题 思考记录

    从细节入手已经从一种技巧变成一种策略了. 题目给出的条件很奇怪,是3个正方形,, 为什么是3个而不是4个或2个呢.. 于是先用一个大矩形把所有点卡住 然后显然矩形的每个边 都有一个正方形和他在一条直线 ...

  5. 2017.10.29 软件安装 思考记录

    这个题一开始卡了,,就是树内的必选和可选分不太清 ,其实很好分,对于一个子树,根是必选,子节点是可选 然后递归保证正确性 可选就是把每个花费都看成一个物品往里背包 注: 1.必选<c[o]的要清 ...

  6. 2017.10.26 星际贸易 思考记录

    这个题非常繁琐,而且网上的题解非常不详细.. 首先第一问 由于所有的点都要走到,所以就是01背包 需要可持久化背包来输出方案..类似floyd的判断方式 然后这些选定的点都一定是要维护的, 第二问就是 ...

  7. 2017.10.25 打鼹鼠 思考记录

    挺直白的dp 离散的是移动的过程,因为经过一番移动一定是为了出现在某个地点 所以直接m^2枚举,类似lis的转移即可 码: #include<iostream> #include<c ...

  8. 2017.10.19 大陆争霸 思考记录

    一上来想到拓扑分层最短路,但需要多源最短路.. 这题考查的是对dij的理解 dij只能跑最短路每次都找极值点进行一次拓展,同时不能有负边权 所以一次需要确定  两个值都确定的一个点所以扩展的条件有两个 ...

  9. 2017.10.17 蜘蛛难题 思考记录

    强烈建议不要做此题,此题描述差到极点!毒瘤出题人 首先有想法就是从起点往后按照出水管依次满足,但多个水域需要合起来求下一个最低出水口,所以并不是很好维护 所以最好按照时间模拟 先求出当前状态下的最低水 ...

最新文章

  1. R可视化使用ggplot2创建样本数据热力图(heatmap)
  2. 支付宝安全进程也“耍流氓”
  3. 优酷html5视频没有弹幕,优酷弹幕怎么设置 优酷PC端怎么屏蔽底下弹幕?
  4. dotNet Core 3.1 使用 Aspose (部署 Docker)
  5. 辣味就直往眼睛的专业o2o资讯
  6. FileZilla 安装配置参考
  7. linux免费商用字体,免费可商用字体~文泉驿正黑体
  8. 信息安全技术第五章应用安全(完整详细笔记)
  9. 微信小程序获取用户手机号
  10. 代表JAVA线程优先级的常量是_Java 线程优先级
  11. Python CookBook第二章 字符串和文本
  12. U盘格式化后容量变小恢复方法
  13. java多个文件下载之压缩包下载
  14. 融资轮数划分 天使轮 种子轮 preA A A+ B轮 C轮
  15. 图像算法五 —— EM算法
  16. 2008 IT图书大盘点
  17. 雷电3接口能干嘛_把雷电3插到TypeC接口了?不认识电脑接口的小伙伴看过来
  18. Nginx控制IP(段)的访问策略配置
  19. 华为机试题(Python)
  20. 路由器无线桥接的方法

热门文章

  1. 设计模式笔记十五:命令模式
  2. 基于Matlab的跨孔电磁波\跨孔雷达的胖射线追踪(一)
  3. poj 2502 Subway md自闭了,之后再看吧f**k
  4. LeetCode-94. 二叉树的中序遍历
  5. Python官方文档学习心得(第五篇)
  6. 用python玩转数据测试答案_大学慕课2020用Python玩转数据章节测试答案
  7. 连接路由器后电脑连不上网_猫、路由器、交换机的区别
  8. idea中Tomcat启动乱码问题
  9. ssh 连接_Docker实战——使用SSH连接docker容器
  10. python函数定义与参数_Python函数的定义方式与函数参数问题实例分析