題意:取數遊戲是乙個 2 人對策遊戲。遊戲開始時將 n 個數在棋盤上從左到右排成一行。甲乙雙方輪流在這一行數的左右 2 端取數,直至全部取完 n 個數。每人所取得的數的總和為其得分值。最後雙方得分多者獲勝。遊戲規定由甲方先取數。
★演算法設計: 在甲乙雙方都採用最優策略的前提下,計算甲方先取數時雙方的最後得分。
解題思路:首先要明確2個人都採取最優的策略,既:
到a取,a希望自己取的這個數能使他的分數盡量高
到b取,b希望a取到的分數盡量低
於是可以很容易的得到乙個3維的dp
opt[l][r][s]:s=0時表示甲面對(l,r)時甲得到的最優值,s=1表示乙面對(l,r)時甲得到的最優值,注意這裡記錄的都是甲的最優值。
#include#include#define n 105
using namespace std;
int a[n],opt[n][n][2],n;
int dfs(int l,int r,int s)//s=1表示後手面對當前局面我得到的最優值,
int main()
return 0;
}
FZU 1025 狀壓dp 擺磚塊
這兩天想補動態規劃知識 就去fzu做專題 然後又碰到了 就認真的想並且去做了 dp思想都在 注釋裡 思想是很好想的.唯一的難點大概是 c 裡面沒有同或這種東西 得自己寫 而我又不怎麼會位運算 問了蕾姐半天也沒搞懂怎麼用 這個取反符號 到最後怒而手寫了函式 一開始想的是 init後 輸入nm都可以秒出...
狀壓dp 玉公尺田 狀壓dp
相關 強相關 327.玉公尺田 狀壓dp 小國王 狀壓dp 是井字形,本題是十字形。思路 狀態計算 時間複雜度 n 2 n 2n o n 22n 12 2 24n 2 n 2 n o n2 12 2 n 2n 2 n o n22n 12 224 看著妥妥超時,但是裡面合法狀態很少 依舊可以過 在此,...
狀壓dp小記
鋪磚 題意 現有nm的一塊地板,需要用12的磚塊去鋪滿,中間不能留有空隙。問這樣方案有多少種 include using namespace std typedef long long ll const int maxn 1 11 int n,m,state ll dp 15 maxn s1表示本行...