1516. 棋盘上的车[组合数学][状态压缩]
1516. 棋盘上的车
☆ 输入文件:rook.in
输出文件:rook.out
简单对比
时间限制:1 s 内存限制:256 MB
【题目描述】
在n*n(n≤20)的方格棋盘上放置n 个车,求使它们不能互相攻击的方案总数。
【输入格式】
一行一个正整数n。
【输出格式】
一行一个正整数,即方案总数。
【样例输入】
3
【样例输出】
6
【来源】
周伟,《状态压缩》,引例
/* 乘法原理: 第一步有n种决策,第二步有 n-1种决策,…… 第N步有 1种决策 前一步都对后一步产生影响。都对答案有贡献。 因此,ans=n! */ #include<cstdio> #include<iostream> using namespace std; typedef long long ll; ll n,ans=1; int main(){freopen("rook.in","r",stdin);freopen("rook.out","w",stdout);cin>>n;for(ll i=1;i<=n;i++) ans*=i;cout<<ans; }
//f[11111]表示在五行每一行都放车的方案数 #include<cstdio> typedef long long ll; ll n,f[1<<20]; int main(){freopen("rook.in","r",stdin);freopen("rook.out","w",stdout);scanf("%lld",&n);f[0]=1;for(ll i=1;i<(1<<n);i++){for(ll S=i;S;S-=(S&-S)){f[i]+=f[i& ~(S&-S)];}}printf("%lld\n",f[(1<<n)-1]);return 0; }
转载于:https://www.cnblogs.com/shenben/p/6545102.html
1516. 棋盘上的车[组合数学][状态压缩]相关推荐
- 【转】状态压缩动态规划
引入 首先来说说"状态压缩动态规划"这个名称,顾名思义,状态压缩动态规划这个算法包括两个特点,第一是"状态压缩",第二是"动态规划". 状 ...
- 0x56. 动态规划 - 状态压缩DP(习题详解 × 7)
目录 Problem A. 最短Hamilton路径 ProblemB. 蒙德里安的梦想 Problem C. Corn Fields Problem D. 小国王 Problem E. 炮兵阵地 P ...
- LeetCode 1066. 校园自行车分配 II(状态压缩DP)
文章目录 1. 题目 2. 解题 2.1 回溯超时 2.2 状态压缩DP 1. 题目 在由 2D 网格表示的校园里有 n 位工人(worker)和 m 辆自行车(bike),n <= m.所有工 ...
- 状态压缩动态规划 - 总结【普及+,提高-】
状态压缩动态规划是一类特殊的动态规划,通常有一维用来表示一个二进制状态.状态压缩,顾名思义,就是把原来要一个bool数组表示状态压缩到一个int变量里.围绕状压DP,我们将介绍它的前世今生,领略状压D ...
- 第一章 动态规划 状态压缩DP
1.基本概述 状态压缩dp和状态机一样,都是一种特殊的状态表示方式.状态机用一系列小状态表示某一状态.状态压缩dp用二进制数进行表示.虽然看代码起来时间复杂度比较高,但是很多的情况都给剪枝掉了. 状态 ...
- 动态规划——状态压缩dp
文章目录 概述 状态压缩 使用条件 状压dp 位运算 棋盘(基于连通性)类问题 概述 例题 蒙德里安的梦想 小国王 玉米田 炮兵阵地 集合类问题 概述 例题 最短Hamilton路径 愤怒的小鸟 总结 ...
- pat 食物链(状态压缩求哈密顿回路)
状态压缩求哈密顿回路 #include<bits/stdc++.h> using namespace std; bool dp[23][1<<21]; char s[22][2 ...
- POJ-1753 Flip Game 枚举 状态压缩
刚开始做这题时总是在想应该用何种的策略来进行翻装,最后还是没有想出来--- 这题过的代码的思路是用在考虑到每个点被翻装的次数只有0次或者是1次,所以对于16个点就只有2^16中请况了.再运用位运算将状 ...
- 状压DP Hiho-1044 状态压缩
状态压缩 [HihoCoder - 1044] 小Hi和小Ho在兑换到了喜欢的奖品之后,便继续起了他们的美国之行,思来想去,他们决定乘坐火车前往下一座城市--那座城市即将举行美食节! 但是不幸的是,小 ...
最新文章
- raspberry pi下使用mp3blaster播放mp3音乐
- 在字节跳动工作是什么样的体验?
- Clipboard类summary
- VMware的快照和克隆总结
- Tomcat管理平台
- javascript --- 利用节点关系访问HTML元素
- linux 下qt 终端隐藏在后台_20 个 Linux 终端下的生产力工具 | Linux 中国
- 语言程序推箱子课设报告_“延期不延学”第13期 | C++篇 | c++课设建议
- css练习github,10个Github上相见恨晚的CSS 奇技淫巧项目,帮你找到写CSS的灵感!
- 我是如何把SpringBoot项目的并发提升十倍量级的
- 挑选32 2K显示器
- 【运动学】基于matlab模拟布朗运动(可输入温度)【含Matlab源码 1610期】
- 怎么把音频转换成mp3,一键批量转换法
- python 100以内的奇数和_python入门:输出1-100之内的所有奇数和偶数
- 构筑“数据连接器”,腾讯云大数据推出“开源开放”战略
- 物理机通过Xshell连接不上虚拟机的解决方案
- 特种浓缩分离:中药提取液的澄清过滤技术
- android 状态栏高度多少像素,Android之获取屏幕的尺寸像素及获取状态栏标题栏高度...
- 【原创】Python 使用jmpy模块加密|加固 python代码
- android 手机 跑分榜,Android手机哪家强?安兔兔鲁大师榜单见分晓!
热门文章
- DWZ 验证 CLASS 规则
- filebeat6.2.3收集多个日志源 多个topic输出
- zzfrom水木-Linux环境学习和开发心得(作者:lunker)
- hdu4685 最大匹配可能性
- C语言经典例24-分数累加和
- 【Linux 内核】Linux 内核特性 ( 组织形式 | 进程调度 | 内核线程 | 多平台虚拟内存管理 | 虚拟文件系统 | 内核模块机制 | 定制系统调用 | 网络模块架构 )
- 【C 语言】数组 ( 数组本质 | 数组长度定义 | 数组初始化 | 编译时初始化 | 显式初始化 - 重置内存 )
- 【字符串】字符串查找 ( Rabin-Karp 算法 )
- 【错误记录】Flutter 报错 ( Android Studio 中 main.dart 左侧不显示设备栏 )
- 【Android 内存优化】Android 原生 API 图片压缩代码示例 ( PNG 格式压缩 | JPEG 格式压缩 | WEBP 格式压缩 | 动态权限申请 | Android10 存储策略 )