bzoj4563: [Haoi2016]放棋子(错排+高精)
4563: [Haoi2016]放棋子
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 387 Solved: 247
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
0 1
1 0
Sample Output
/*
每一行每一列只能放1个求方案数 转化为错排问题
练习高精压位 压9位。。。
*/
#include <iostream>
#include <cstdio>
#include<iomanip> #define N 2001
#define mod 1000000000
#define _ 9
#define ll long long using namespace std;
ll n;
struct num
{
ll d[N],w;
/* void print()
{
for (ll i=w;i>=1;i--) cout<<d[i];
printf("\n");
}*/
}D[N],id; num operator +(num p1,num p2)
{
num ret=id;
ll g=;
if (p1.w<p2.w) swap(p1,p2);
ret.w=p1.w;
for (ll i=;i<=p1.w;i++)
{
ret.d[i]=(p1.d[i]+p2.d[i]+g)%mod;
g=(p1.d[i]+p2.d[i]+g)/mod;
}
while(g) ret.d[++ret.w]=g%mod , g/=mod;
return ret;
} num mul(num p1,ll p2)
{
num ret=id;
ret.w=p1.w;
ll g=;
for (ll i=;i<=p1.w;i++)
{
ret.d[i]=(p1.d[i]*p2+g)%mod;
g=(p1.d[i]*p2+g)/mod;
}
while(g) ret.d[++ret.w]=g%mod,g/=mod;
return ret;
} ostream& operator << (ostream &os,num x)
{
ll i;
os<<x.d[x.w];
for(i=x.w-;i;i--)
os<<setfill('')<<setw(_)<<x.d[i];
return os;
} int main()
{
scanf("%d",&n);
if (n == )
{
puts("");
return ;
}
D[]=id;
D[].w=D[].d[]=;
for (ll i=;i<=n;i++)
D[i] = mul((D[i-]+D[i-]),i-);
cout<<D[n];
return ;
}
bzoj4563: [Haoi2016]放棋子(错排+高精)的更多相关文章
- 【BZOJ4563】[Haoi2016]放棋子 错排+高精度
[BZOJ4563][Haoi2016]放棋子 Description 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍 ...
- BZOJ4563: [Haoi2016]放棋子
Description 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在 这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子也满足每行 ...
- JZYZOJ1544 [haoi2016T2]放棋子 错排公式 组合数学 高精度
http://172.20.6.3/Problem_Show.asp?ID=1544&a=ProbNF 看了题解才意识到原题有错排的性质(开始根本不知道错排是什么). 十本不同的书放在书架上. ...
- BZOJ4563 HAOI2016放棋子(高精度)
没看清题还以为是要求数最大匹配数量……注意到任意障碍不在同一行同一列,且恰好有n个障碍,不妨通过交换列使得第i行第i列均有障碍.那么就是个错排了.居然wa了一发简直没救. #include<io ...
- 洛谷P3182 [HAOI2016]放棋子
P3182 [HAOI2016]放棋子 题目描述 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要 ...
- [Haoi2016]放棋子 题解
4563: [Haoi2016]放棋子 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 440 Solved: 285[Submit][Status] ...
- [HAOI2016] 放棋子及错排问题
题目 Description 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子也满足 ...
- 洛谷 P3182 [HAOI2016]放棋子(高精度,错排问题)
传送门 解题思路 不会错排问题的请移步——错排问题 && 洛谷 P1595 信封问题 这一道题其实就是求对于每一行的每一个棋子都放在没有障碍的地方的方案数. 因为障碍是每行.每列只有一 ...
- 洛谷 P3182 [HAOI2016]放棋子(错排问题)
题面 luogu 题解 裸的错排问题 错排问题 百度百科:\(n\)个有序的元素应有\(n!\)个不同的排列,如若一个排列使得所有的元素不在原来的位置上,则称这个排列为错排:有的叫重排.如,1 2的错 ...
随机推荐
- 【Linux软件安装】
安装约定 软件安装在/opt目录下,opt目录规范: modules:软件安装的目录 softwares:软件包目录 tools:工具目录 datas:数据目录 如果出现 No XXX package ...
- ZJU cluster
* loginSSH using MobaXterm: >> ssh kaiming@10.106.239.105
- 突击战 (UVA 11729)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=28436 思路:任务从开始时就不停执行,与其他任务毫无关联,当然是执 ...
- Spring security 5 Authorize Configuration
1. Spring Security 核心请求,认证配置类 WebSecurityConfigurerAdapter protected void configure(HttpSecurity htt ...
- CSS中具有继承性的属性:
CSS中具有继承性的属性: color:#eee font: font-style font-variant: font-weight:bold font-size font-family: fo ...
- 【Codeforces 1027D】Mouse Hunt
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 先求出来强连通分量. 每个联通分量里面,显然在联通块的尽头(没有出度)放一个捕鼠夹就ok了 [代码] #include <bits/st ...
- win7 32位机安装VMware win7 64位虚拟机
VMware10虚拟机怎么安装win7系统(详细教程):https://jingyan.baidu.com/article/86f4a73ec62e8f37d65269a1.html 然而上述教程想不 ...
- FFT快速傅里叶变换
FFT太玄幻了,不过我要先膜拜HQM,实在太强了 1.多项式 1)多项式的定义 在数学中,由若干个单项式相加组成的代数式叫做多项式.多项式中的每个单项式叫做多项式的项,这些单项式中的最高项次数,就是这 ...
- 洛谷 P3063 [USACO12DEC]牛奶的路由Milk Routing
P3063 [USACO12DEC]牛奶的路由Milk Routing 题目背景 征求翻译.如果你能提供翻译或者题意简述,请直接发讨论,感谢你的贡献. 题目描述 Farmer John's farm ...
- Python: 解决simple-db-migrate的"No module named 'MySQLdb'错误
sudo apt-get install libmysqlclient-dev sudo -H pip3 install mysqlclient