[BZOJ 4563]放棋子

题目

给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子也满足每行只有一枚棋子,每列只有一枚棋子的限制,求有多少种方案。

INPUT

第一行一个N,接下来一个N*N的矩阵。N<=200,0表示没有障碍,1表示有障碍,输入格式参考样例

OUTPUT

一个整数,即合法的方案数。

SAMPLE

INPUT

2
0 1
1 0

OUTPUT

1

解题报告

一道读入都不用打完的题= =

只用读入$n$就好了QAQ

全错位排列往上一打,加个高精就好了QAQ

 #include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
struct bign{
int a[],len;
bign():len(){memset(a,,sizeof(a));}
bign(const char *s){*this=s;}
bign(const int &x){*this=x;}
inline void operator=(const char *s){
len=strlen(s);
for(int i=;i<len;++i)
a[i]=s[len-i-]-'';
}
inline void operator=(const int &x){
char s[];
memset(s,,sizeof(s));
sprintf(s,"%d",x);
*this=s;
}
inline void clear(){while(len>&&!a[len-])--len;}
inline bign operator+(const bign &x){
bign ret;
ret.len=max(len,x.len)+;
int jw();
for(int i=;i<len;++i){
ret.a[i]=a[i]+x.a[i]+jw;
jw=ret.a[i]/;
ret.a[i]%=;
}
if(jw)
ret.a[len++]=jw;
ret.clear();
return ret;
}
inline void operator+=(const bign &x){*this=*this+x;}
inline bign operator-(const bign &x){
bign ret;
ret=*this;
for(int i=;i<len;++i){
if(ret.a[i]<x.a[i])
ret.a[i]+=,--ret.a[i+];
ret.a[i]=ret.a[i]-x.a[i];
}
ret.clear();
return ret;
}
inline void operator-=(const bign &x){*this=*this-x;}
inline bign operator-(const int &x){
bign tmp(x);
return *this-tmp;
}
inline void operator-=(const int &x){*this=*this-x;}
inline bign operator*(const bign &x){
bign ret;
ret.len=len+x.len+;
int jw;
for(int i=;i<len;++i){
jw=;
for(int j=;j<x.len;++j){
ret.a[i+j]+=a[i]*x.a[j]+jw;
jw=ret.a[i+j]/;
ret.a[i+j]%=;
}
ret.a[i+x.len]+=jw;
}
ret.clear();
return ret;
}
inline void operator*=(const bign &x){*this=*this*x;}
inline bign operator*(const int &x){
bign tmp(x);
return *this*tmp;
}
inline void operator*=(const int &x){*this=*this*x;}
inline void print(){
for(int i=len-;i>=;--i)
printf("%d",a[i]);
}
}f[];
int n;
int main(){
scanf("%d",&n);
f[]=;
f[]=;
for(int i=;i<=n;++i)
f[i]=(f[i-]+f[i-])*(i-);
f[n].print();
}

[BZOJ 4563]放棋子的更多相关文章

  1. BZOJ 4563: [Haoi2016]放棋子

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

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

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

  3. BZOJ 3294: [Cqoi2011]放棋子

    3294: [Cqoi2011]放棋子 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 628  Solved: 238[Submit][Status] ...

  4. bzoj千题计划261:bzoj3294: [Cqoi2011]放棋子

    http://www.lydsy.com/JudgeOnline/problem.php?id=3294 如果一个颜色的棋子放在了第i行第j列,那这种颜色就会占据第i行第j列,其他颜色不能往这儿放 设 ...

  5. 【BZOJ 3294】 3294: [Cqoi2011]放棋子 (DP+组合数学+容斥原理)

    3294: [Cqoi2011]放棋子 Description Input 输入第一行为两个整数n, m, c,即行数.列数和棋子的颜色数.第二行包含c个正整数,即每个颜色的棋子数.所有颜色的棋子总数 ...

  6. 【BZOJ3294】放棋子(动态规划,容斥,组合数学)

    [BZOJ3294]放棋子(动态规划,容斥,组合数学) 题面 BZOJ 洛谷 题解 如果某一行某一列被某一种颜色给占了,那么在考虑其他行的时候可以直接把这些行和这些列给丢掉. 那么我们就可以写出一个\ ...

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

    https://www.lydsy.com/JudgeOnline/problem.php?id=4563 给你一个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. 洛谷P2303 [SDOi2012]Longge的问题

    题目背景 SDOi2012 题目描述 Longge的数学成绩非常好,并且他非常乐于挑战高难度的数学问题.现在问题来了:给定一个整数N,你需要求出∑gcd(i, N)(1<=i <=N). ...

  2. ubuntu16.04 Kafka 安装

    Kafka核心概念: 下面介绍Kafka相关概念,以便运行下面实例的同时,更好地理解Kafka. 1. Broker Kafka集群包含一个或多个服务器,这种服务器被称为broker 2. Topic ...

  3. PCB NOSQL MongoDb MI流程指示数据存储结构

    一.MI流程指示结构 二.产品型号树结构(即盲埋孔板型号结构) 三.MI流程指示UI 小结:1.MI流程指示使用的表非常之多(30多张表),存储的数据分散到各个表中,而NOSQL 一个产品型号一条记录 ...

  4. hibernate基础学习---hierbnate2级缓存

    1:开启二级缓存sessionFactory需要安装jar包 2:在实体类配置文件添加(配置二级缓存).我的配置文件是Account.hbm.xml <?xml version="1. ...

  5. AcWing算法基础1.5

    前缀和与差分 两个内容都比较少,就放一起写了 设数组 a 的前 n 项为a1 , a2 , a3 ... an 前缀和数组就是每一项是a数组的前i项和,比如前缀和数组res,res[ 1 ] = a[ ...

  6. Elasticsearch之CURL命令的UPDATE

    对于,Elasticsearch之CURL命令的UPDATE包括局部更新和全部更新.可以去看我写的另一篇博客. Elasticsearch之更新(全部更新和局部更新) 总结: ES全部更新,使用PUT ...

  7. JS高级——歌曲管理

    1.将歌曲管理的CURD方法放到原型中 2.在构造函数中,我们只有一个属性是songList,因为音乐库不是共有的,如果将songList放入原型中,任何一个人的一次修改songList,都将把son ...

  8. C 语言常用方法技巧

    C语言常用方法技巧 *:first-child { margin-top: 0 !important; } body>*:last-child { margin-bottom: 0 !impor ...

  9. HDU_1698_Just a Hook_线段树区间更新

    Just a Hook Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  10. Forum/viewthread.php代码备份

    <!--{eval $lzthread = DB::fetch_all("SELECT `tid`,`subject` FROM ".DB::table('forum_thr ...