剛學習了插頭dp,找了道基礎題練練手。
用乙個n+1位的二進位制數表示輪廓線上的狀態,1代表有插頭,0代表沒有插頭。
那麼狀態的轉移為:
如果當前格的兩個輪廓線上只有乙個插頭,那麼dp[i][j][k]=dp[i][j-1][k]+dp[i][j-1][k^x^y],否則dp[i][j][k]=dp[i][j-1][k^x^y];**如下:
#include #include #include #include using namespace std;
int n,m;
int mp[13][13];
long long dp[13][13][5000]; //狀態1表示有插頭,0表示無插頭
void work() else }}
}}int main()
return 0;
}
HDU 1693 插頭dp 艱難入門
什麼是插頭dp?首先我們要先知道它能解決那些問題。一般都是一張方格圖里有關連通性的一些問題。那麼對於乙個格仔而言,他就可能會有一些線經過它。所以也可以沒有,看題目 例如這張圖 那麼插頭就是描述這些線條如何穿過這些格仔 那如何用插頭來表示一種狀態?對於乙個寬度為m的圖,它的插頭就有m 1種,每一種插頭...
HDU 1565 方格取數 1 插頭dp
problem description 給你乙個n n的格仔的棋盤,每個格仔裡面有乙個非負數。從中取出若干個數,使得任意的兩個數所在的格仔沒有公共邊,就是說所取的數所在的2個格仔不能相鄰,並且取出的數的和最大。input 包括多個測試例項,每個測試例項包括乙個整數n 和n n個非負數 n 20 ou...
HDU4405 概率DP求期望
題目 題意 飛行棋,從0到n,置骰子,置到幾就往前走幾步,前進中會有捷徑,比如2和5連到一起了,那你走到2時可以直接跳到 5,如果5和8連到一起了,那你還可以繼續跳到8,最後問跳到n時平均置幾次骰子。也就是求期望。全期望公式 全概率公式 概率期望學習 include include include ...