1516. 棋盘上的车[组合数学][状态压缩]
2017-03-13 21:16
218 查看
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; }
相关文章推荐
- 【HPU 1192 Sequence】+ 状态压缩 +组合数学
- hpuoj-1192-Sequence【状态压缩】【组合数学】
- POJ3920状态压缩和组合数学
- 【唯一分解定理 && 状态压缩 && 组合数学】LightOJ - 1236 Pairs Forming LCM
- hdu 3811 用状态压缩DP 解决看似组合数学的题目
- poj 1038 状态压缩~棋盘覆盖
- HDU 2067 小兔的棋盘 (组合数学 卡特兰数)
- 状态压缩动态规划 -- 棋盘问题 POJ 1321
- 搜集卡片 状态压缩+数学期望
- poj1321 棋盘问题(状态压缩)
- POJ 1321 棋盘问题 状态压缩入门
- 状态压缩DP-棋盘模型总结
- 状态压缩棋盘问题2道 sgu131&poj1038
- poj 1753 棋盘翻转(BFS+状态压缩)
- poj-1321 棋盘问题(状态压缩)
- 状态压缩DP-棋盘模型总结
- 棋盘放车(DP状态压缩)
- Codeforces Beta Round #85 (Div. 1 Only) C (状态压缩或是数学?)
- POJ 1321 棋盘问题(状态压缩DP | DFS)
- 棋盘放车(有些点不能放)(DP状态压缩)