評測記錄:
n個多公尺諾骨牌,上下值不相同,可以交換乙個多公尺諾上下的值,求最少的交換次數使上下之和的差值最小。用f
i,j+
n fi,
j+
n表示只計算前i個多公尺諾,上下之差為j需要的最小次數,然後類似揹包的想法正常用差值轉移就好了。
#include
#include
#include
#define n 5000
using
namespace
std;
int n,n1,n2,f[1001][n*3],a[1001],ans,mins;
int main()
memset(f,127/3,sizeof(f));
f[0][n]=0;//初始化
for(int i=1;i<=n;i++)
}for(int i=0;i<=n;i++)
printf("%d",mins);
}
P1282 多公尺諾骨牌 DP
多公尺諾骨牌有上下2個方塊組成,每個方塊中有1 6個點。現有排成行的 上方塊中點數之和記為s1,下方塊中點數之和記為s2,它們的差為 s1 s2 例如在圖8 1中,s1 6 1 1 1 9,s2 1 5 3 2 11,s1 s2 2。每個多公尺諾骨牌可以旋轉180 使得上下兩個方塊互換位置。程式設計...
P1282 多公尺諾骨牌 DP
題目大意 題解當知道 總和 及 單行的和 就可以算出差值的大小 1 2 3 4 單行和l 10 8 7 6 5 總和s 36 則上下行的差值為 l s l include define inf 0x3f3f3f3f using namespace std int n,a 1005 b 1005 dp...
P1282 多公尺諾骨牌 差值DP 揹包
多公尺諾骨牌有上下2個方塊組成,每個方塊中有1 6個點。現有排成行的 上方塊中點數之和記為s1,下方塊中點數之和記為s2,它們的差為 s1 s2 例如在圖8 1中,s1 6 1 1 1 9,s2 1 5 3 2 11,s1 s2 2。每個多公尺諾骨牌可以旋轉180 使得上下兩個方塊互換位置。程式設計...