Lightoj 1011 Marriage Ceremonies(状压dp入门 or km板子)
2017-07-19 13:10
477 查看
题意:给你n*n的矩阵,a[i][j]代表第i个男人和第j个女人之间的满意度,求男女一一配对后,最大的满意度之和。(n<=16)
思路:可以直接套KM板子,n^3复杂度,因为n比较小,也可以用状压做,n^2*2^n复杂度
转移方程:dp[i][sta|(1<<j)] = max(dp[i][sta|(1<<j)], dp[i-1][sta]+a[i][j])
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 17;
int dp[maxn][1<<maxn], a[maxn][maxn];
int main(void)
{
int t, n, ca = 1;
cin >> t;
while(t--)
{
scanf("%d", &n);
memset(dp, 0, sizeof(dp));
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
scanf("%d", &a[i][j]), dp[i][1<<j] = a[i][j];
for(int i = 1; i < n; i++)
for(int j = 0; j < (1<<n); j++)
{
if(dp[i-1][j])
{
for(int k = 0; k < n; k++)
{
if(!(j & (1<<k)))
{
dp[i][j|(1<<k)] = max(dp[i][j|(1<<k)], dp[i-1][j]+a[i][k]);
}
}
}
}
printf("Case %d: %d\n", ca++, dp[n-1][(1<<n)-1]);
}
return 0;
}
思路:可以直接套KM板子,n^3复杂度,因为n比较小,也可以用状压做,n^2*2^n复杂度
转移方程:dp[i][sta|(1<<j)] = max(dp[i][sta|(1<<j)], dp[i-1][sta]+a[i][j])
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 17;
int dp[maxn][1<<maxn], a[maxn][maxn];
int main(void)
{
int t, n, ca = 1;
cin >> t;
while(t--)
{
scanf("%d", &n);
memset(dp, 0, sizeof(dp));
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
scanf("%d", &a[i][j]), dp[i][1<<j] = a[i][j];
for(int i = 1; i < n; i++)
for(int j = 0; j < (1<<n); j++)
{
if(dp[i-1][j])
{
for(int k = 0; k < n; k++)
{
if(!(j & (1<<k)))
{
dp[i][j|(1<<k)] = max(dp[i][j|(1<<k)], dp[i-1][j]+a[i][k]);
}
}
}
}
printf("Case %d: %d\n", ca++, dp[n-1][(1<<n)-1]);
}
return 0;
}
相关文章推荐
- LightOJ 1011 - Marriage Ceremonies(状压DP)
- LightOJ 1011 - Marriage Ceremonies (状压dp)
- LightOJ1011---Marriage Ceremonies (状压dp)
- lightoj 1011 - Marriage Ceremonies 【状压dp or KM】
- lightoj 1011 Marriage Ceremonies (状压dp)
- LightOJ - 1011 Marriage Ceremonies(状压DP)
- LightOJ - 1037 Agent 47(状压DP)
- poj 3254 Corn Fields 【状压 DP 入门】
- LightOJ 1037 - Agent 47(状压DP)
- HDU 1011 Starship Troopers(树形DP入门题)
- DNA Sequence LightOJ - 1073(状压dp)
- LightOJ 1061 1061 - N Queen Again(状压dp)
- 【DP】 LightOJ 1011 - Marriage Ceremonies状压
- 1011 - Marriage Ceremonies(状压dp)
- POJ3254 状压dp入门
- LightOJ - 1037 Agent 47(状压DP)
- LightOJ1316 A Wedding Party(状压DP)
- lightoj 1422 - Halloween Costumes 【区间dp入门】
- Lightoj 1021【状压DP(未搞)】
- LightOJ 1018 - Brush (IV) (状压dp)