BZOJ 4563: [Haoi2016]放棋子
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 389 Solved: 248
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
0 1
1 0
Sample Output
HINT
Source
交换阵法的行列对于答案是没有影响的,所以我们可以将阴阳玉都
换到对角线上, 然后答案就变为了求 n 的错排数, 通过递推式即可求出。
f[n]=(n-1)*(f[n-1]+f[n-2]);
高精
考试丧心病狂的数据最大到5000 需要压位高精 代码底下有 。
- #include <cstring>
- #include <cstdio>
- #define N 500
- #define MOD 10
- inline int max(int a,int b) {return a>b?a:b;}
- struct node
- {
- int a[N];
- inline node operator+(node b)
- {
- node c;
- c.a[]=max(a[],b.a[])+;
- for(int i=;i<=c.a[];++i)
- {
- c.a[i]+=a[i]+b.a[i];
- c.a[i+]+=c.a[i]/MOD;
- c.a[i]=c.a[i]%MOD;
- }
- for(;c.a[]>&&c.a[c.a[]]==;c.a[]--);
- return c;
- }
- node() {memset(a,,sizeof(a));}
- }ans[N];
- int G[N][N],n;
- node operator*(int x,node b)
- {
- int t=;
- node c;
- c.a[]=b.a[]+;
- for(int i=;i<=c.a[];++i) c.a[i]=b.a[i]*x;
- for (int i=;i<=c.a[];i++)
- {
- c.a[i]+=t;
- if (c.a[i]>=MOD){t=c.a[i]/MOD;c.a[i]%=MOD;}
- else t=;
- }
- for(;t;t/=MOD) c.a[++c.a[]]=t%MOD;
- for(;c.a[]>&&c.a[c.a[]]==;c.a[]--);
- return c;
- }
- int Main()
- {
- scanf("%d",&n);
- ans[].a[]=;ans[].a[]=,ans[].a[]=ans[].a[]=;
- /* for(int i=1;i<=n;++i)
- for(int j=1;j<=n;++j)
- scanf("%d",&G[i][j]);*/
- for (int i=;i<=n;i++) ans[i]=(i-)*(ans[i-]+ans[i-]);
- printf("%d",ans[n].a[ans[n].a[]]);
- for (int i=ans[n].a[]-;i>=;i--) printf("%d",ans[n].a[i]);
- return ;
- }
- int sb=Main();
- int main(int argc,char *argv[]){;}
- #include <cstring>
- #include <cstdio>
- #define N 5005
- #define MOD 10000
- inline int max(int a,int b) {return a>b?a:b;}
- struct node
- {
- int a[N];
- inline node operator+(node b)
- {
- node c;
- c.a[]=max(a[],b.a[])+;
- for(int i=;i<=c.a[];++i)
- {
- c.a[i]+=a[i]+b.a[i];
- c.a[i+]+=c.a[i]/MOD;
- c.a[i]=c.a[i]%MOD;
- }
- for(;c.a[]>&&c.a[c.a[]]==;c.a[]--);
- return c;
- }
- node()
- {memset(a,,sizeof(a));}
- }ans[N];
- int G[N][N],n;
- node operator*(int x,node b)
- {
- int t=;
- node c;
- c.a[]=b.a[]+;
- for(int i=;i<=c.a[];++i) c.a[i]=b.a[i]*x;
- for (int i=;i<=c.a[];i++)
- {
- c.a[i]+=t;
- if (c.a[i]>=MOD){t=c.a[i]/MOD;c.a[i]%=MOD;}
- else t=;
- }
- for(;t;t/=MOD) c.a[++c.a[]]=t%MOD;
- for(;c.a[]>&&c.a[c.a[]]==;c.a[]--);
- return c;
- }
- int Main()
- {
- freopen("firstmeet.in","r",stdin);
- freopen("firstmeet.out","w",stdout);
- scanf("%d",&n);
- ans[].a[]=;ans[].a[]=,ans[].a[]=ans[].a[]=;
- /* for(int i=1;i<=n;++i)
- for(int j=1;j<=n;++j)
- scanf("%d",&G[i][j]);
- */ for (int i=;i<=n;i++) ans[i]=(i-)*(ans[i-]+ans[i-]);
- printf("%d",ans[n].a[ans[n].a[]]);
- for (int i=ans[n].a[]-;i>=;i--) printf("%04d",ans[n].a[i]);
- return ;
- fclose(stdin);
- fclose(stdout);
- }
- int sb=Main();
- int main(int argc,char *argv[]){;}
丧心病狂的5000(压位)
BZOJ 4563: [Haoi2016]放棋子的更多相关文章
- BZOJ——T 4563: [Haoi2016]放棋子
Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 387 Solved: 247[Submit][Status][Discuss] Descriptio ...
- 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] ...
- 【BZOJ4563】[Haoi2016]放棋子 错排+高精度
[BZOJ4563][Haoi2016]放棋子 Description 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍 ...
- 洛谷P3182 [HAOI2016]放棋子
P3182 [HAOI2016]放棋子 题目描述 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要 ...
- BZOJ4563:[HAOI2016]放棋子——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4563 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列 ...
- BZOJ4563: [Haoi2016]放棋子
Description 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在 这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子也满足每行 ...
- BZOJ 3294: [Cqoi2011]放棋子
3294: [Cqoi2011]放棋子 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 628 Solved: 238[Submit][Status] ...
- [HAOI2016] 放棋子及错排问题
题目 Description 给你一个N*N的矩阵,每行有一个障碍,数据保证任意两个障碍不在同一行,任意两个障碍不在同一列,要求你在这个矩阵上放N枚棋子(障碍的位置不能放棋子),要求你放N个棋子也满足 ...
随机推荐
- 《精通Spring4.X企业应用开发实战》读后感第四章(资源访问)
package com.smart.resource; import org.springframework.core.io.ClassPathResource; import org.springf ...
- eclipse安装cppcheck
简介: cppcheck 是一个 c 和 c++ 的静态的代码检查分析工具,不用运行程序就可以进行代码的检测. 可以检测一般的内存泄漏和程序编码错误 0.安装 cppcheck 1.57版本,这个版 ...
- Swoole 协程与 Go 协程的区别
Swoole 协程与 Go 协程的区别 进程.线程.协程的概念 进程是什么? 进程就是应用程序的启动实例. 例如:打开一个软件,就是开启了一个进程. 进程拥有代码和打开的文件资源,数据资源,独立的内存 ...
- [翻译]Nativescript 中 Web 视图与 Android/IOS 的双向通信
English document From http://shripalsoni.com/blog/nativescript-webview-native-bi-directional-communi ...
- Image Processing - Pseudo(False) Color Processing
最近在一个项目中有需要用到将图片从GrayScale转为FalseColor,然而百度了一下Halcon 伪彩色等关键字均找不到相关答案,倒是有很多OpenCV和Matlab的...后来在搜索中看到了 ...
- 聊聊心跳机制及netty心跳实现
我们在使用netty的时候会使用一个参数,ChannelOption.SO_KEEPALIVE为true, 设置好了之后再Linux系统才会对keepalive生效,但是linux里边需要配置几个参数 ...
- PAT甲级真题及训练集
正好这个"水水"的C4来了 先把甲级刷完吧.(开玩笑-2017.3.26) 这是一套"伪题解". wacao 刚才登出账号测试一下代码链接,原来是看不到..有空 ...
- jzoj6008. 【THUWC2019模拟2019.1.18】Sequence (矩阵加速)
题面 茉优最近研究发现,一个人的想愿能力可以认为是字符串S的一个子串S[l,r],而连接值可以认为是这个子串的本质不同子序列个数.现在她想验证她的结论是否正确,于是她给了你Q个询问,希望你帮她来计算, ...
- 记录错误:tomcat“socket close”错误
Error running 'Tomcat 8.5.37': Unable to open debugger port (127.0.0.1:9562) 使用打开cmd.exe 输入 1)taskli ...
- EOS Bios Boot Sequence
EOS version:v1.0.5 Date:2018-06-19 Host: Centos 7 Reference :https://github.com/EOSIO/eos/wiki/Tutor ...