传送门


解题思路

不会错排问题的请移步——错排问题 && 洛谷 P1595 信封问题

这一道题其实就是求对于每一行的每一个棋子都放在没有障碍的地方的方案数。

因为障碍是每行、每列只有一个,所以答案不受障碍的影响。

这里障碍就等于是信封,棋子就等于是信,也是求所有的信都放错信封的方案数。

显然是错排问题。

公式:d(i)=(i-1)*(d(i-1)+d(i-2))。看一看数据范围,没有取余,所以需要用高精度。

注意

  • 公式中是(i-1)而不是(n-1)——整整一个小时
  • 高精度加法乘法混合运算中,这里是先乘后加。——整整半个小时
  • c++函数中数组的引用可以用*数组名或者(&数组名)[数组大小]两种方法——十分钟

所以这样一道垃圾的题用了我接近两个小时。。。

AC代码

 #include<iostream>
using namespace std;
const int maxn=;
int a[][maxn];
int n;
void add(int k){
for(int i=;i<=;i++){
int x=a[k][i];
a[k][i]=a[k-][i]+a[k-][i];
a[k][i]*=k-;
a[k][i]+=x;
a[k][i+]+=a[k][i]/;
a[k][i]%=;
}
}
int main()
{
cin>>n;
a[][]=;
for(int i=;i<=n;i++){
add(i);
}
int i=maxn;
while(--i&&a[n][i]==&&i>);
for(;i>;i--) cout<<a[n][i];
return ;
}

洛谷 P3182 [HAOI2016]放棋子(高精度,错排问题)的更多相关文章

  1. 洛谷 P3182 [HAOI2016]放棋子(错排问题)

    题面 luogu 题解 裸的错排问题 错排问题 百度百科:\(n\)个有序的元素应有\(n!\)个不同的排列,如若一个排列使得所有的元素不在原来的位置上,则称这个排列为错排:有的叫重排.如,1 2的错 ...

  2. 洛谷P3182 [HAOI2016]放棋子

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

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

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

  4. [洛谷P3158] [CQOI2011]放棋子

    洛谷题目链接:[CQOI2011]放棋子 题目描述 在一个m行n列的棋盘里放一些彩色的棋子,使得每个格子最多放一个棋子,且不同 颜色的棋子不能在同一行或者同一列.有多少祌方法?例如,n=m=3,有两个 ...

  5. 洛谷P3158 [CQOI2011]放棋子 组合数学+DP

    题意:在一个m行n列的棋盘里放一些彩色的棋子,使得每个格子最多放一个棋子,且不同颜色的棋子不能在同一行或者同一列.有多少祌方法? 解法:这道题不会做,太菜了qwq.题解是看洛谷大佬的. 设C是组合数, ...

  6. 洛谷——P4071 [SDOI2016]排列计数(错排+组合数学)

    P4071 [SDOI2016]排列计数 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳定的.序列 ...

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

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

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

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

  9. [Haoi2016]放棋子 题解

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

随机推荐

  1. DevExpress ASP.NET Core Controls 2019发展蓝图(No.5)

    本文主要为大家介绍DevExpress ASP.NET Core Controls 2019年的官方发展蓝图,更多精彩内容欢迎持续收藏关注哦~ [DevExpress ASP.NET Controls ...

  2. Provider增删改查

    package com.fei.provider; import org.apache.ibatis.jdbc.SQL; import com.fei.domain.User; public clas ...

  3. margin-top百分比问题

    (1)其实margin-top和margin-bottom的百分比,一般是按容器元素的宽度而不是高度来计算的,padding同理.

  4. [原创]PHP代码修正之CodeSniffer

    目录 参考链接 介绍 安装 使用 命令行模式 PHPStorm 让编辑器使用PSR-2标准 集成phpcbf 参考链接 PHP开发规范之使用phpcbf脚本自动修正代码格式 在PhpStorm中使用P ...

  5. Spring配置文件出错

    问题描述: Element 'xxxxxxx' cannot have character [children],because the type's content type is element- ...

  6. React Native 中吐司组件react-native-easy-toast

    https://github.com/crazycodeboy/react-native-easy-toast 用法: import Toast from 'react-native-easy-toa ...

  7. BZOJ 1776: [Usaco2010 Hol]cowpol 奶牛政坛 LCA + 树的直径

    Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) ...

  8. JS FormData 文件异步提交

    html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  9. UE4从4.15移植到4.16

    如果是旧版本的工程需要移植到4.16,有几个地方需要修改: 假设RC是工程名,修改如下(三个CS文件) 类似的,插件也需要这样修改

  10. sqlserver高版本往低版本迁移

    本例为sql2012 还原到sql2008. 要实现的功能是把sql2012的数据库备份到sql2008,数据库名字为Test,并且这两个数据库在不同的电脑中. 微软的软件设计方案基本上都是新版本兼容 ...