思路:而且要注意,兩條路線在走重複的格仔之後,必須各走各的,不要又走成交叉/重複的了。所以對於這個重複的格仔來說,它只會有2種情況,如**。
#include #include #include using namespace std;
#define mem(a) memset((a), 0, sizeof(a))
const int maxn = 505;
int a[maxn][maxn];
int dp1[maxn][maxn], dp2[maxn][maxn], dp3[maxn][maxn], dp4[maxn][maxn];
int main()
for (int i = 1; i <= n; i++)
}for (int i = n; i >= 1; i--)
}for (int i = 1; i <= n; i++)
}for (int i = n; i >= 1; i--)
}for (int i = 2; i < n; i++)
}printf("%d\n", ans);
}return 0;
}
雙人遊戲問題
有如下乙個雙人遊戲 n個正整數的序列放在乙個遊戲平台上,兩個人輪流從序列的兩端取數,取數後該數字被去掉並累加到本玩家的得分中,當數取盡時,遊戲結束,以最終的分多者為勝利。編寫乙個執行最優策略的程式,最優策略就是使得自己能在當前情況下得到最優策略。要求程式要始終為第二位玩家執行最優策略。該題目的動態規...
藍橋杯 數字遊戲
問題描述如下 問題不難,最大的問題是溢位,如果使用long long而直接暴力求借,溢位問題依舊存在。如何解決呢,不難得出第i個人心中的數是1 1 2 3 i 1 所以到下一次棟棟心裡的數為1 1 2 3 4 5 n 其中n為已經有n人次報過數 為了避免溢位,筆者的做法是保留上次棟棟報數的值,假設為...
藍橋杯 數字遊戲
題目描述 解題過程 最初以為是乙個迴圈節問題,樣例確實是迴圈的,多寫幾組就發現了。但是,其實是乙個坑,根本不是什麼迴圈節。於是我直接暴力做了一遍,過了一半資料 include using namespace std const int maxn 1e6 7 typedef long long ll ...