车_ssl1382_dfs+位运算
来源:互联网 发布:sql查询数据库的大小 编辑:程序博客网 时间:2024/06/05 06:55
Description
在n*n(n≤20)的方格棋盘上放置n个车(可以攻击所在行、列),有些格子不能放,求使它们不能互相攻击的方案总数。
Input
第一行为棋盘的大小n
第二行为障碍的数量m
第三行到第m+3为m个障碍
Output
总数
Analysis
开错数组的惨痛教训不能忘,果断开大一倍
Code
#include <stdio.h>using namespace std;long long mr[2048576],b[41],lim,n,m;__attribute__((optimize("O2")))inline void dfs(int dep,long long now){ if (mr[now]) return; long long p=now|b[dep]; while (p!=lim) { long long tmp=p; p|=(p+1); long long pos=p^tmp; dfs(dep+1,now|pos); mr[now]+=mr[now|pos]; }}__attribute__((optimize("O2")))int main(){ scanf("%lld%lld",&n,&m); lim=(1<<n)-1; for (int i=1;i<=m;i++) { int x,y; scanf("%d%d",&x,&y); b[x]|=(1<<(y-1)); } mr[lim]=1; dfs(1,0); printf("%lld\n",mr[0]); return 0;}
0 0
- 车_ssl1382_dfs+位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 位运算
- 京东众筹抽奖算法
- 立体类族共有的抽象类
- 修复受损的linux引导
- hadoop再次搭建总结
- java单例模式的整理
- 车_ssl1382_dfs+位运算
- Codeforces Round #367 (Div. 2)
- CollectionView
- N个猴子,123循环报数数到3的猴子被踢出下一个接着报数,一遍一遍的循环直到剩余一个猴子,求这个猴子是最开始的第几号猴子。
- java抽奖算法
- [Android]边下边播精简代码版本(支持音视频格式)
- 关于Window创建流程的一点愚见(Activity启动过程中)
- 华为 21
- centos6.5 yum update之后vnc报错unable to open display "localhost:1"