[BZOJ 4563]放棋子
[BZOJ 4563]放棋子
题目
给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子也满足每行只有一枚棋子,每列只有一枚棋子的限制,求有多少种方案。INPUT
第一行一个N,接下来一个N*N的矩阵。N<=200,0表示没有障碍,1表示有障碍,输入格式参考样例
OUTPUT
一个整数,即合法的方案数。
SAMPLE
INPUT
2
0 1
1 0OUTPUT
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]放棋子的更多相关文章
- BZOJ 4563: [Haoi2016]放棋子
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 389 Solved: 248[Submit][Status][Discuss] Descriptio ...
- BZOJ——T 4563: [Haoi2016]放棋子
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 387 Solved: 247[Submit][Status][Discuss] Descriptio ...
- BZOJ 3294: [Cqoi2011]放棋子
3294: [Cqoi2011]放棋子 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 628 Solved: 238[Submit][Status] ...
- bzoj千题计划261:bzoj3294: [Cqoi2011]放棋子
http://www.lydsy.com/JudgeOnline/problem.php?id=3294 如果一个颜色的棋子放在了第i行第j列,那这种颜色就会占据第i行第j列,其他颜色不能往这儿放 设 ...
- 【BZOJ 3294】 3294: [Cqoi2011]放棋子 (DP+组合数学+容斥原理)
3294: [Cqoi2011]放棋子 Description Input 输入第一行为两个整数n, m, c,即行数.列数和棋子的颜色数.第二行包含c个正整数,即每个颜色的棋子数.所有颜色的棋子总数 ...
- 【BZOJ3294】放棋子(动态规划,容斥,组合数学)
[BZOJ3294]放棋子(动态规划,容斥,组合数学) 题面 BZOJ 洛谷 题解 如果某一行某一列被某一种颜色给占了,那么在考虑其他行的时候可以直接把这些行和这些列给丢掉. 那么我们就可以写出一个\ ...
- BZOJ4563:[HAOI2016]放棋子——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4563 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列 ...
- bzoj4563: [Haoi2016]放棋子(错排+高精)
4563: [Haoi2016]放棋子 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 387 Solved: 247[Submit][Status] ...
- [Haoi2016]放棋子 题解
4563: [Haoi2016]放棋子 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 440 Solved: 285[Submit][Status] ...
随机推荐
- androd基础入门---1环境
1.项目结构特性 2.模拟器设置 3.编译器的下载 直接点击运行即可
- Applications(模拟)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3705 题意:主要是分值计算要注意以下几点: (1) 在MOJ上解出的题,如 ...
- TextMeshPro 图片字Sprite
生成 需要一个资源 右键生成 调整位置 放在目录 使用 <sprite="NumDamage" index=1><sprite="NumDam ...
- Spring中常用的注解,你知道几个呢?
今天给大家分享下Spring中一般常用的注解都有哪些.可能很多人做了很长是了但有些还是不知道一些注解,不过没有关系,你接着往下看. Spring部分 1.声明bean的注解 @Component 组件 ...
- SRM-697-DIV2
Div2 Medium: DivisibleSetDiv2 Problem Statement You are given a vector <int> b containing ...
- 新人浅谈__(数据库的设计__数据库模型图,数据库E-R图,三大范式)
>>>> 为什么需要规范的数据库设计 在实际的项目开发中,如果系统的数据存储量较大,设计的表比较多,表和表之间的关系比较复杂,就需要首先考虑规范的数据库设计,然后进行创建库, ...
- struts2.1.6存在中文乱码的bug
如题,后续版本中已解决:可以通过添加filter的方式解决.
- JavaScript中的 函数splice() 的使用。
大二接触JavaScript初期,学习函数中有一道题: 定义一个2个参数的函数.第1个参数是一个数组,第2个参数是需要删除的元素.函数功能,在第1个实参数组中查找第2个实参提供的值,找到则删除该元素( ...
- android计算屏幕dp
首先我们来了解一些基本元素: px:像素,屏幕上的点. dpi:一英寸长的直线上的像素点的数量,即像素密度.标准值是160dp. /*** 正是因为dpi值其代表的特性,所以android项目的资源文 ...
- 解决springmvc返回json中文乱码
在pringmvc中通过设置@ResponseBody返回json乱码问题,这个问题上网找了很久,发现答案真是人云亦云,奉上我的解决方案: 解决方案一:需要导入 jackson-core-asl-1. ...