一道状态压缩DP思想题
2017-04-06 15:13
204 查看
一个n*n的棋盘,在每一行,每一列只能放一个棋子,问有多少种方法。
比如:n=4
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
就是每列都有一个 并且每行有一个,这样 ,挨,我这么说你懂我意思吧。
#include <bits/stdc++.h>
using namespace std;
int dp[1<<20];
int main()
{
memset(dp,0,sizeof(dp));
dp[0]=1;
int n;
cin>>n;
for(int st=0;st<(1<<n);st++)
{
for(int i=0;i<n;i++)
{
if(st&(1<<i))
{
int now=st^(1<<i);
dp[st]+=dp[now];
}
}
}
cout<<dp[(1<<n)-1]<<endl;
}
//dp[1010]=dp[1000]+dp[0010];
比如:n=4
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
就是每列都有一个 并且每行有一个,这样 ,挨,我这么说你懂我意思吧。
#include <bits/stdc++.h>
using namespace std;
int dp[1<<20];
int main()
{
memset(dp,0,sizeof(dp));
dp[0]=1;
int n;
cin>>n;
for(int st=0;st<(1<<n);st++)
{
for(int i=0;i<n;i++)
{
if(st&(1<<i))
{
int now=st^(1<<i);
dp[st]+=dp[now];
}
}
}
cout<<dp[(1<<n)-1]<<endl;
}
//dp[1010]=dp[1000]+dp[0010];
相关文章推荐
- 一道状态压缩DP思想题
- 一道状态压缩DP思想题
- 一道状态压缩DP思想题
- 一道状态压缩DP思想题
- 一道状态压缩DP思想题
- 一道状态压缩DP思想题
- 一道状态压缩DP思想题
- 一道状态压缩DP思想题
- 一道状态压缩DP思想题
- 一道状态压缩DP思想题
- 一道状态压缩DP思想题
- 一道状态压缩DP思想题
- UVA 11825 状态压缩DP+子集思想
- UESTC 1690 这是一道比CCCC简单题难的简单题 状态压缩dp
- SGU 132 一道很恶心的状态压缩dp
- POJ1185 状态压缩DP 又是一道有意义的水题
- ZOJ-3802:Easy 2048 Again(2048游戏 状态压缩dp)
- dp.状态压缩
- HDU 4352 XHXJ's LIS (数位DP+LIS+状态压缩)
- poj 3311 Hie with the Pie(状态压缩dp)