題目大意:
題解當知道 總和 及 單行的和
就可以算出差值的大小
1 2 3 4(單行和l=10)
8 7 6 5
(總和s=36)
則上下行的差值為 |l-(s-l)|
#include #define inf 0x3f3f3f3fview codeusing
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;
}
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 使得上下兩個方塊互換位置。程式設計...