P1282 多公尺諾骨牌 DP

2022-06-02 04:18:11 字數 786 閱讀 1294

題目大意:

題解當知道 總和 及 單行的和

就可以算出差值的大小

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[1005][5005

];///

dp[i][j]到第i塊牌時 使單行和為j至少需要翻牌的次數

intmain()

//因為牌上的數最大為6 最小為1 則差值的範圍為 0到5

memset(dp,inf,sizeof

(dp));

dp[0][b[0]]=1; dp[0][a[0]]=0

;

for(int i=1;i)

for(int j=0;j<=5*n;j++)

int minc=inf, mins=inf;

for(int i=0;i<=5*n && i<=s;i++)

if(dp[n-1][i]!=inf)

else

if(fabs(i-(s-i))==mins)

minc=min(minc,dp[n-1

][i]);

}printf(

"%d\n

",minc);

}return0;

}

view code

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 多公尺諾骨牌

多公尺諾骨牌有上下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 多公尺諾骨牌

多公尺諾骨牌有上下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 使得上下兩個方塊互換位置。程式設計...