vijos 1456 最小总代价(状压dp)

题目链接

题解:这题就是普通的状压dp 设 二维dp[i][j] 表示为 在i状态下 物品在第j个人手上的最小代价花费。

初始化要注意一下。

#include
using namespace std;
const int N = 20, M = (1 << 17);
int dp[M][N], mp[N][N];
int main()
{
	int n, mx;
	scanf("%d", &n);
	for(int i = 0; i < n; ++i)
	for(int j = 0; j < n; ++j)
	scanf("%d", &mp[i][j]);
	mx = (1 << n);
	memset(dp, 0x3f, sizeof dp);
	for(int i = 0; i < n; ++i)
	dp[1<

 

 

 

你可能感兴趣的:(状压dp)