洛谷1282 多公尺諾骨牌

2022-04-28 20:30:20 字數 870 閱讀 5708

是傳送門啊

又是一道時隔多年不太會寫的題qwq

思路:想了一會 覺得可以設f[i][j]為前i個牌旋轉j次的最小上下點數差

但是這樣好像又不對 因為這個區域性最優並不一定可以得到全域性最優啊

於是又想了想 終於喚起了原來寫這道題的記憶

令f[i][j]為前i張牌 上面的骨牌點數和為j的最小旋轉次數

code:

1 #include2 #include3

using

namespace

std;

4int a[1010],b[1010];//

a:上 ;b:下

5int f[1010][6010];6

intmain()

717 sum1=abs(s1-s2);

18for(int i=1;i<=n;i++)

1923 f[1][a[1]]=0;f[1][b[1]]=1;24

for(int i=2;i<=n;i++)25

31}32int mins=210000000,mint=210000000;33

for(int i=0;i<=6*n;i++)

3443

if(sum==mins&&f[n][i]f[n][i];44}

45}46if(mins>=sum1) cout<<0;47

else cout<

48return0;

49 }

貼上以前的code啊

洛谷 1282 多公尺諾骨牌

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