洛谷 P2964 硬幣的遊戲

2022-05-10 05:53:18 字數 544 閱讀 6040

依舊是博弈論的殼子,但問的是最大值,所以要dp

設 dp[i][j] 表示該取 i 號硬幣,上一次取了 j 個的先手能取的最大值,

因為每次從小到大列舉複雜度太高,所以我們要從 dp[i][i - 1] 轉移,每次新加兩個狀態即可

#include #include #include #include #include using namespace std;

const int maxn = 2030;

int init()

while(c >= '0' && c <= '9')

return fh * rv;

}int n, num[maxn], pre[maxn], dp[maxn][maxn];

int main()

for(int i = 1 ; i <= n ; i++)

for(int i = 1 ; i <= n ; i++)

} cout

return 0;

}

洛谷 P2708 硬幣翻轉

時間限制1.00s 記憶體限制125.00mb 從前有很多個硬幣擺在一行,有正面朝上的,也有背面朝上的。正面朝上的用1表示,背面朝上的用0表示。現在要求從這行的第乙個硬幣開始,將前若干個硬幣一起翻面,問如果要將所有硬幣翻到正面朝上,最少要進行這樣的操作多少次?乙個字串,由0和1組成,表示硬幣狀態 乙...

洛谷P1146 硬幣翻轉

時間限制 1.00s 記憶體限制 125.00mb 題目描述在桌面上有一排硬幣,共nn枚,每一枚硬幣均為正面朝上。現在要把所有的硬幣翻轉成反面朝上,規則是每次可翻轉任意n 1n 1枚硬幣 正面向上的被翻轉為反面向上,反之亦然 求乙個最短的操作序列 將每次翻轉n 1枚硬幣成為一次操作 輸入格式 乙個自...

洛谷P2708 硬幣翻轉

題目鏈結 題目描述 有很多個硬幣擺在一行,有正面朝上的,也有背面朝上的。正面朝上的用1表示,背面朝上的用0表示。現在要求從這行的第乙個硬幣開始,將從第乙個硬幣開始的前若干個硬幣同時翻面,求如果要將所有硬幣翻到正面朝上,最少要進行這樣的操作多少次?輸入格式 乙個字串,由0和1組成,表示硬幣狀態 輸出格...