题面

题解

任意两个障碍不在同一列

要求你放$N$个棋子也满足每行只有一枚棋子,每列只有一枚棋子的限制。

这™不就是个错排吗???

$$ h_i=(n-1)(h_{i-1}+h_{i-2}),h_1=0,h_2=1 $$

写个高精度就好了。。。

代码

#include<cstdio>
#include<cstring>
#include<cctype>
#include<algorithm>
#define RG register inline int read()
{
int data = 0, w = 1; char ch = getchar();
while(ch != '-' && (!isdigit(ch))) ch = getchar();
if(ch == '-') w = -1, ch = getchar();
while(isdigit(ch)) data = data * 10 + (ch ^ 48), ch = getchar();
return data * w;
} const int maxn(210), Mod(1e8);
int n, a[maxn];
long long f[maxn][50]; int main()
{
n = read(); f[1][0] = 0, f[2][0] = 1;
for(RG int i = 3; i <= n; i++)
{
for(RG int j = 0; j <= a[i - 1]; j++)
f[i][j] = f[i - 1][j] + f[i - 2][j];
a[i] = a[i - 1];
for(RG int j = 0; j <= a[i - 1]; j++)
f[i][j + 1] += f[i][j] / Mod,
f[i][j] %= Mod;
while(f[i][a[i] + 1]) ++a[i];
for(RG int j = 0; j <= a[i]; j++) f[i][j] *= i - 1;
for(RG int j = 0; j <= a[i]; j++)
f[i][j + 1] += f[i][j] / Mod,
f[i][j] %= Mod;
while(f[i][a[i] + 1]) ++a[i];
}
printf("%lld", f[n][a[n]]);
for(RG int i = a[n] - 1; ~i; i--) printf("%08lld", f[n][i]);
return 0;
}

【HAOI2016】放棋子的更多相关文章

  1. 【BZOJ4563】[Haoi2016]放棋子 错排+高精度

    [BZOJ4563][Haoi2016]放棋子 Description 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍 ...

  2. 洛谷P3182 [HAOI2016]放棋子

    P3182 [HAOI2016]放棋子 题目描述 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要 ...

  3. bzoj4563: [Haoi2016]放棋子(错排+高精)

    4563: [Haoi2016]放棋子 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 387  Solved: 247[Submit][Status] ...

  4. [Haoi2016]放棋子 题解

    4563: [Haoi2016]放棋子 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 440  Solved: 285[Submit][Status] ...

  5. BZOJ4563: [Haoi2016]放棋子

    Description 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在 这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子也满足每行 ...

  6. [HAOI2016] 放棋子及错排问题

    题目 Description 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子也满足 ...

  7. BZOJ4563:[HAOI2016]放棋子——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4563 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列 ...

  8. BZOJ 4563: [Haoi2016]放棋子

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 389  Solved: 248[Submit][Status][Discuss] Descriptio ...

  9. BZOJ——T 4563: [Haoi2016]放棋子

    Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 387  Solved: 247[Submit][Status][Discuss] Descriptio ...

  10. 洛谷 P3182 [HAOI2016]放棋子(高精度,错排问题)

    传送门 解题思路 不会错排问题的请移步——错排问题 && 洛谷 P1595 信封问题 这一道题其实就是求对于每一行的每一个棋子都放在没有障碍的地方的方案数. 因为障碍是每行.每列只有一 ...

随机推荐

  1. springMVC入门-07

    删除功能实现,对应controller类中的代码如下所示: @RequestMapping(value="/{username}/delete",method=RequestMet ...

  2. Shell: extract more from listener.log (分析oracle监听日志)

    最近遇到了两起数据库连接数不足的问题, 通常都会预留一些会话增加的情况, 但在一些特殊情况下如连接风暴(logon storm), 如果在监听中没有做rate限流,对数据库来说巨大的冲击可能会导致数据 ...

  3. esxcli software vib 命令为 ESXi 5.x/6.x 主机安装补丁程序 (2008939)

      参考KB:https://kb.vmware.com/s/article/2008939?lang=zh_CN    Symptoms 免责声明:本文为 “esxcli software vib” ...

  4. November 30th 2016 Week 49th Wednesday

    Your attitude, not your aptitude, will determine your altitude. 决定你人生高度的,不是你的才能,而是你的态度. Basically, I ...

  5. APP分析之海豚睡眠

    APP分析之海豚睡眠 产品:海豚睡眠 引文 由于笔者暑假经常晚睡,导致在习惯性失眠.长时间睡眠不足,导致头脑反应迟钝,还整日无精打采,不知所措.一个偶然的机会,在一个燥热的夜晚,眼看又是一个不眠之夜, ...

  6. quartz开发环境搭建

    进来项目中用到了quartz作为调度框架,在搭建框架的时候添加了一个调度模块,现将代码分享出来,给有需要的朋友参考.这个任务调度可以作为一个单独的模块去开发,所以并不会改变原有的架构,话不多说,直接上 ...

  7. python第二课——数据类型1

    day02(上午)主要讲了进制问题,小编之前已经发过了 day02(下午): 1.数据类型: 分类: 1).整数型:int浮点型(小数):float布尔型(True/False):bool 2).字符 ...

  8. P4053 [JSOI2007]建筑抢修

    题目描述 小刚在玩JSOI提供的一个称之为“建筑抢修”的电脑游戏:经过了一场激烈的战斗,T部落消灭了所有z部落的入侵者.但是T部落的基地里已经有N个建筑设施受到了严重的损伤,如果不尽快修复的话,这些建 ...

  9. logstash 匹配日志格式

    2017-05-15 12:06:17 INFO  me.cinyi.imapp.push.commons.iospush  - 用户ID[1000]-标识[11500], admin推送通知成功, ...

  10. ethereumjs/ethereumjs-common-2-API文档

    https://github.com/ethereumjs/ethereumjs-common/blob/master/docs/index.md 该API的调用的详细例子可见ethereumjs/e ...