alice和bob在玩乙個遊戲,遊戲是在乙個n*n的矩陣上進行的,每個格仔上都有
乙個正整數。當輪到alice/bob時,他/她可以選擇最後一列或最後一行,並將其刪除,但
必須保證選擇的這一行或這一列所有數的和為偶數。如果他/她不能刪除最後一行或最後一
列,那麼他/她就輸了。兩人都用最優策略來玩遊戲,alice先手,問alice是否可以必勝?
第一行:t,表示資料組數
對於每組資料的第一行:n
接下來n行,每行n個數,描述這個矩陣
如果alice必勝輸出w,否則輸出l
222 4
6 83
5 4 2
1 5 9
7 3 8
l100%資料滿足w
1<=n<=1000
保證每一行或每一列的和不會超過2*10^9
1<=t<=5
30%資料滿足
1<=n<=5
50%資料滿足
1<=n<=100
70%資料滿足
1<=n<=500
2s256m
思路就是記憶化搜尋,每一次標記一下是誰下這個點。可以預處理一下資料,加快執行的速度。
#includeusing namespace std;
int map[2000][2000],hang[2000][2000],lie[2000][2000];
bool book [2000][2000][2];
bool dp[2000][2000][2];
int n;
bool dfs(int i,int j,bool point)
book[i][j][point]=1;
return dp[i][j][point];}
int main()
for(int j=1;j<=n;j++)
for(int i=1;i<=n;i++)
lie[i][j]=lie[i-1][j]+map[i][j];
if(dfs(n,n,0))cout<<"w\n";
else cout<<"l\n";
} return 0;
}
樹形dp(數字轉換NOIP17提高模擬訓練4)
如果乙個數x的約數和 不包括它本身,下同 比它本身小,那麼x可以變成它的約數和 如果對於某個y x且y的約數和為x,那麼x也可以變成y。例如,4可以變為3,1可以變為7。限定所有的數字變換在不超過n的正整數範圍內進行,求不斷進行數字變換且沒有重複數字出現的最多變換步數。輸入乙個正整數n。輸出最少需要...
NOIP模擬 記憶化搜尋 動態規劃 遊戲
題目描述 題目大意 有n個物品排成一排,從左往右第i個價值為a i 有兩個人從左往右輪流取物品。第乙個人可以拿一或兩個物品。如果前乙個人拿了k個,下乙個人只能拿k或k 1個。如果剩下的物品不夠拿,就結束。問如果大家都採取最優策略,那麼先手拿的物品的價值最多能比後手多多少。1 n 20000 樣例輸入...
樹形dp(人品問題NOIP17提高模擬訓練3)
網上出現了一種高科技產品 人品測試器。只要你把你的真實姓名輸入進去,系統將自動輸出你的人品指數。把兒不相信自己的人品為0。經過了許多研究後,把兒得出了乙個更為科學的人品計算方法。這種方法的理論依據是乙個非常重要的結論 人品具有遺傳性。因此,乙個人的人品完全由他的祖先決定。把兒提出的人品計算方法相當簡...