Petya and Spiders 二進位制狀壓

2022-09-17 22:33:20 字數 1086 閱讀 6252

題目鏈結【

題意:給出大小為n*m的圖(1 ≤ n, m ≤ 40, n·m ≤ 40),每個圖中有乙個蜘蛛,每個蜘蛛有5種運動狀態,不動,向上下左右移動。問蜘蛛如何移動才能使得圖中的空地數最大,輸出最大空地數。

題解:雖然(1 ≤ n, m ≤ 40, n·m ≤ 40),但是當(n

dp[i][j][k]為第i行的狀態為j,i+1行的狀態為k的空位數。 dp[i + 1][k][l] = max(dp[i + 1][k][l], dp[i][j][k] + nu[k]);這個第(i+1)行的轉移方程是滿足在第i、第(i+1)行、第(i+2)行的狀態使得(i+1)行的蜘蛛的有去處。最後取dp[n][i][0]的最大值。

#includeusing

namespace

std;

typedef

long

long

ll;const

int maxn = 1

<< 6;//

6*7=42;

int dp[45][maxn][maxn];//

dp[i][j][k]為第i行的狀態為j,i+1行的狀態為k的空位數

intnu[maxn];

intn, m, lim;

bool ok (int a, int b, int

c)int

main ()

nu[i] = m -nu[i];

}for(int i = 0; i < n; i++)

for(int j = 0; j <= lim; j++) //

i行的狀態

for(int k = 0; k <= lim; k++) //

i+1行的狀態

if(dp[i][j][k] != -1

)

int ans = 0

;

for(int i = 0; i <= lim; i++)

ans = max(ans, dp[n][i][0

]); printf(

"%d\n

", ans);

return0;

}

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...

二進位制巧妙運用 二進位制存多個布林型別狀態值

使用第三個變數來接收 int c 0 c a c 等於1 a b a 等於2 b c b 等於1當然靈活運用,這種方式肯定是不推薦的啦!重新整理一下你對小學數學的理解 a a b a 等於3 b a b b 等於1 a a b a 等於2 既然是程式設計師,我們用程式設計師的方式來做一下,還可以深刻...

判斷二進位製半整數(二進位制)

10年後,tokitsukaze大佬已經變成了年收入超百萬的的精英程式設計師,家裡沒錢也沒礦的teitoku,找tokitsukaze大佬借1000塊錢,然後tokitsukaze大佬說,借你1024吧,湊個整數。沒錯在2進製下1024是 二進位制整數 乙個正整數滿足其值為2的k次方 k為正整數 我...