題目鏈結【
題意:給出大小為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]的最大值。
#includeusingnamespace
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為正整數 我...