程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> POJ 2923 Relocation / 狀態壓縮DP

POJ 2923 Relocation / 狀態壓縮DP

編輯:C++入門知識

和以前做的差不多

n《=10 很容易忘狀態壓縮那裡想

預處理一下 哪幾個物品可以一次運完 可以的話用一個二進制表示 並且dp[state] = 1 表示一次就可以

然後平常那樣做狀態壓縮DP就行了

#include 
#include 
#include 
#include 
using namespace std; 
const int maxn = 12;
const int INF = 999999999;
int n, m1, m2;
int a[maxn];
int b[1<= a[i]; j--)
				d[j] |= d[j-a[i]];
		}
	}
	for(int i = 0; i <= m1; i++)
	{
		if(d[i] && sum-i <= m2)
			return true;
	}
	return false;
}
int main()
{
	int cas = 1;
	int T;
	scanf("%d", &T); 
	while(T--)
	{
		scanf("%d %d %d", &n, &m1, &m2);
		for(int i = 0; i < n; i++)
			scanf("%d", &a[i]);
		int l = 0;
		for(int i = 1; i < (1<


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved