2017.10.9 放棋子 思考记录
。这个题根本没想到错排,但它似乎离散为斜对角之后很有规律,于是打表,推出了式子。。。
经常手玩式子,前几天的测试根本没想到卡特兰数然后用组合数硬生生凑了出来,然后这个题的错排。。
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 放棋子 思考记录相关推荐
- 2017.10.29 染色方案 思考记录
这个题数据特别小,于是想到状压多维之流. 状压是比较麻烦的,虽然也能写,但多维dp明显要好写一些 根据15去设计状态是没有前途的,因为按颜色分一定会MLE 这时就考虑根据5分,这样不同颜色就离散了,就 ...
- 2017.10.24 上升序列 思考记录
终于有会做的题了... 一开始想用正常的lis ,然后从前往后扫, 由于最优查询区间在序列上是按顺序单调递增的,所以想记录每个点取哪个值跳到哪,这样是n*m logn的 然后发现既然是单调递增的那直接 ...
- 2017.10.7 括号序列 思考记录
这个题看起来很简单,但细节比较麻烦.参考完别人的代码后才想出自己的解法的.. 一开始认为已匹配的括号是可以直接消的,所以就只维护了两个变量 但还有区间取反.. 由于和已配对的括号的顺序有关,所以不是很 ...
- 2017.10.30 覆盖问题 思考记录
从细节入手已经从一种技巧变成一种策略了. 题目给出的条件很奇怪,是3个正方形,, 为什么是3个而不是4个或2个呢.. 于是先用一个大矩形把所有点卡住 然后显然矩形的每个边 都有一个正方形和他在一条直线 ...
- 2017.10.29 软件安装 思考记录
这个题一开始卡了,,就是树内的必选和可选分不太清 ,其实很好分,对于一个子树,根是必选,子节点是可选 然后递归保证正确性 可选就是把每个花费都看成一个物品往里背包 注: 1.必选<c[o]的要清 ...
- 2017.10.26 星际贸易 思考记录
这个题非常繁琐,而且网上的题解非常不详细.. 首先第一问 由于所有的点都要走到,所以就是01背包 需要可持久化背包来输出方案..类似floyd的判断方式 然后这些选定的点都一定是要维护的, 第二问就是 ...
- 2017.10.25 打鼹鼠 思考记录
挺直白的dp 离散的是移动的过程,因为经过一番移动一定是为了出现在某个地点 所以直接m^2枚举,类似lis的转移即可 码: #include<iostream> #include<c ...
- 2017.10.19 大陆争霸 思考记录
一上来想到拓扑分层最短路,但需要多源最短路.. 这题考查的是对dij的理解 dij只能跑最短路每次都找极值点进行一次拓展,同时不能有负边权 所以一次需要确定 两个值都确定的一个点所以扩展的条件有两个 ...
- 2017.10.17 蜘蛛难题 思考记录
强烈建议不要做此题,此题描述差到极点!毒瘤出题人 首先有想法就是从起点往后按照出水管依次满足,但多个水域需要合起来求下一个最低出水口,所以并不是很好维护 所以最好按照时间模拟 先求出当前状态下的最低水 ...
最新文章
- R可视化使用ggplot2创建样本数据热力图(heatmap)
- 支付宝安全进程也“耍流氓”
- 优酷html5视频没有弹幕,优酷弹幕怎么设置 优酷PC端怎么屏蔽底下弹幕?
- dotNet Core 3.1 使用 Aspose (部署 Docker)
- 辣味就直往眼睛的专业o2o资讯
- FileZilla 安装配置参考
- linux免费商用字体,免费可商用字体~文泉驿正黑体
- 信息安全技术第五章应用安全(完整详细笔记)
- 微信小程序获取用户手机号
- 代表JAVA线程优先级的常量是_Java 线程优先级
- Python CookBook第二章 字符串和文本
- U盘格式化后容量变小恢复方法
- java多个文件下载之压缩包下载
- 融资轮数划分 天使轮 种子轮 preA A A+ B轮 C轮
- 图像算法五 —— EM算法
- 2008 IT图书大盘点
- 雷电3接口能干嘛_把雷电3插到TypeC接口了?不认识电脑接口的小伙伴看过来
- Nginx控制IP(段)的访问策略配置
- 华为机试题(Python)
- 路由器无线桥接的方法
热门文章
- 设计模式笔记十五:命令模式
- 基于Matlab的跨孔电磁波\跨孔雷达的胖射线追踪(一)
- poj 2502 Subway md自闭了,之后再看吧f**k
- LeetCode-94. 二叉树的中序遍历
- Python官方文档学习心得(第五篇)
- 用python玩转数据测试答案_大学慕课2020用Python玩转数据章节测试答案
- 连接路由器后电脑连不上网_猫、路由器、交换机的区别
- idea中Tomcat启动乱码问题
- ssh 连接_Docker实战——使用SSH连接docker容器
- python函数定义与参数_Python函数的定义方式与函数参数问题实例分析