日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

Leetcode1690. 石子游戏 VII[C++题解]:带有博弈论的区间dp

發(fā)布時(shí)間:2025/4/5 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leetcode1690. 石子游戏 VII[C++题解]:带有博弈论的区间dp 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

文章目錄

    • 題目分析
        • 狀態(tài)表示
        • 狀態(tài)轉(zhuǎn)移
    • 題目鏈接

題目分析

補(bǔ)充博弈論的做題想法:讓最壞情況下最好。在很多決策中,考慮所有的最壞情況,選其中最好的一個(gè)。

本題分析:
剛開始因?yàn)槭莻€(gè)貪心題目,兩個(gè)人每次從兩側(cè)選擇最小的,這樣不是每個(gè)人不是最優(yōu)的嘛,結(jié)果發(fā)現(xiàn)不是。所以這不是一道貪心題。

本題是到區(qū)間dp的題目:

狀態(tài)表示

f[i][j]f[i ][j ]f[i][j]表示 當(dāng)前局面是 stones[i,j]stones[i, j]stones[i,j]的話,先手減后手的得分的最大值

答案是f[1,n]f[1,n]f[1,n]表示當(dāng)前局面是 stones[1,n]stones[1,n]stones[1n]的話,先手減后手的得分的最大值

狀態(tài)轉(zhuǎn)移

下面分析狀態(tài)轉(zhuǎn)移:

對(duì)于 局面stones[i,j]stones[i, j]stones[i,j],先手A有兩種取法:

如果A先取 i :先手得分是s[i+1,j](其中s表示求和)s[i+1,j] (其中s表示求和)s[i+1,j](s),此時(shí)后手的局面是 stones[i+1,j]stones[i+1, j]stones[i+1,j],后手也是極端聰敏的人,會(huì)選擇對(duì)自己最有利的,此時(shí)對(duì)于B而言他是先手,他的最優(yōu)解是f[i+1,j]f[i+1,j]f[i+1,j],此時(shí)f[i+1,j]f[i+1,j]f[i+1,j]存的是B-A(先手- 后手)的最大值。

我們考慮Alice的 最壞情況,是什么呢? 就是A-B的最小值, 等價(jià)轉(zhuǎn)換就是 后手B的最大值,即f[i+1,j]f[i+1,j]f[i+1,j] 。所以A先選i 的話,最壞情況下的分值為是s[i+1,j]?f[i+1,j]是s[i+1,j]-f[i+1,j]s[i+1,j]?f[i+1,j].

如果A先選j,同理,A的得分是s[i,j?1]s[i,j-1]s[i,j?1],此時(shí)后手局面是 stones[i,j?1]stones[i, j-1]stones[i,j?1],B的最優(yōu)解 f[i,j?1]f[i, j-1]f[i,j?1],A的最壞情況下得分就是s[i,j?1]?f[i,j?1]s[i,j-1]-f[i,j-1]s[i,j?1]?f[i,j?1]

總的情況是:先手A最壞情況要求最好,對(duì)上面兩個(gè)式子取max。

所以,狀態(tài)轉(zhuǎn)移方程:
f[i][j]=max(s(i+1,j)?f[i+1][j],s(i,j?1)?f[i][j?1])f[i][j] = max ( s(i+1,j)-f[i+1][j],s(i,j-1)-f[i][j-1])f[i][j]=max(s(i+1,j)?f[i+1][j],s(i,j?1)?f[i][j?1])
這里s為求和,可以使用前綴和優(yōu)化,如下代碼這里s為求和,可以使用前綴和優(yōu)化,如下代碼s使優(yōu)

ac代碼

class Solution { public:int stoneGameVII(vector<int>& stones) {int n=stones.size();vector<int> s(n+1); //前綴和數(shù)組:下標(biāo)從1開始for(int i=1;i<=n;i++) s[i]=s[i-1]+stones[i-1];//因?yàn)閟tone下標(biāo)從0開始vector<vector<int>> f(n+1,vector<int>(n+1)); //二維數(shù)組f大小//區(qū)間dp先枚舉區(qū)間長(zhǎng)度for(int len=2;len<= n ;len ++){//再枚舉左端點(diǎn)for(int i=1;i+len-1<=n;i++){int j=i+ len -1 ; //右端點(diǎn)f[i][j]= max(s[j] -s[i] - f[i+1][j], s[j-1]-s[i-1]-f[i][j-1]); //轉(zhuǎn)移}}return f[1][n];} };

二維vector聲明大小請(qǐng)參考筆者另外一篇博客文章:二維vector的聲明和初始化

題目鏈接

Leetcode1690. 石子游戲 VII

總結(jié)

以上是生活随笔為你收集整理的Leetcode1690. 石子游戏 VII[C++题解]:带有博弈论的区间dp的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91香蕉视频污污 | 日本加勒比中文字幕 | 一区小视频 | 欧美做爰啪啪xxxⅹ性 | 99久久精品免费看国产 | 特级一级片 | 欧美自偷自拍 | 999久久久精品视频 亚洲视频精品在线 | 樱桃国产成人精品视频 | 国内自拍欧美 | 韩国一区二区在线观看 | 777精品久无码人妻蜜桃 | 国产精品色网 | 亚洲精品美女网站 | 欧美性猛交富婆 | 欧美精品中文 | 曰本黄色大片 | 日韩夫妻性生活 | 天天摸天天舔天天操 | 久久久久亚洲av成人毛片韩 | 欧美综合视频在线 | 亚洲人成人无码网www国产 | 亚洲一区二区黄 | 色婷婷av一区二区三区麻豆综合 | 射一射| 欧美精品一卡二卡 | 天天想你在线观看完整版高清 | 亚欧美日韩 | 一级爱爱免费视频 | 亚洲激情视频一区 | 成人三级做爰av | 久久观看最新视频 | 天天操夜夜草 | 日韩经典一区二区三区 | 色小姐av | 黑丝啪啪 | 天天操夜夜添 | 日本视频免费 | 污av | 中文字幕无码精品亚洲资源网久久 | 免费黄色欧美 | 日韩欧美aaa | 日韩精品高清视频 | 久久精品国产亚洲AV成人婷婷 | 久久久国产成人 | 人妻在卧室被老板疯狂进入 | 日本人妻伦在线中文字幕 | 中文字幕一区二区三区四区 | 日韩三级av| 久99| 国产精品婷婷午夜在线观看 | 免费色播 | 亚洲人成无码网站久久99热国产 | 真人毛片97级无遮挡精品 | 97久久精品人人澡人人爽 | 爱爱视频网| 超碰在线国产 | 日韩一区av在线 | 福利视频精品 | 人人看人人艹 | 国产青青青 | 三级黄色av | 一区二区三区黄色 | 日本视频在线看 | 国产黄色大片 | 久久五月综合 | 无码一区二区三区视频 | av网在线观看 | 疯狂做爰的爽文多肉小说王爷 | 国产精品一二三级 | 欧洲av一区二区三区 | 国产自产一区二区 | 999xxxx| 日本一区二区三区在线观看视频 | 波多野吉衣视频在线观看 | 国产精品一区二区免费视频 | 91大片免费看 | 国产区一区二区三 | 久久精品一区二区三区黑人印度 | 牛人盗摄一区二区三区视频 | а√在线中文网新版地址在线 | 精品亚洲一区二区三区 | 欧美日韩毛片 | xxxx少妇| 国产毛片网 | 国产精品色在线网站 | 亚洲无码久久久久 | 欧美性受xxx黑人xyx性爽 | 蜜桃9999 | 亚洲精品美女网站 | 天堂网在线观看 | 久久夜色精品国产欧美乱极品 | 爱爱亚洲 | 男人影院在线观看 | 日剧大尺度床戏做爰 | 用力抵着尿进去了h | 人人草人人澡 | 男人天堂视频在线观看 | 久热国产在线 |