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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

树形动规_(技能树)

發布時間:2023/12/13 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树形动规_(技能树) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

技能樹(SGOI)
skill.pas/c/cpp
【問題描述】
玩過 Diablo 的人對技能樹一定是很熟悉的。一顆技能樹的每個結點都是一項技能,要學會這項技能則需
要耗費一定的技能點數。只有在學會了某一項技能以后,才能繼續學習它的后繼技能。每項技能又有著不同的級
別,級別越高效果越好,而技能的升級也是需要耗費技能點數的。
有個玩家積攢了一定的技能點數,他想盡可能地利用這些技能點數來達到最好的效果,因此他給所有技能的
所有級別都打上了分,他認為效果越好的則分數越高。現在他要你幫忙尋找一個分配技能點數的方案,使得分數
總和最高。
【輸入格式】
第一行是一個整數 n(1<=n<=20),表示所有不同技能的總數。接下來依次給出了這 n 個不同技能的詳細
描述。每個技能描述共包括 5 行,第一行是該技能的名稱,第二行是該技能在技能樹中的父技能的名稱,為空
則表示該技能不需要任何的先修技能便能學習。第三行是一個整數 L(1<=L<=20) ,表示這項技能所擁有的最
高等級。第四行共有 L 個整數,其中第 i 個整數表示把這項技能從第 i-1 級升到第 i 級所需要的技能點數(0
級表示沒有學習過)。第五行也包括了 L 個整數,其中第 i個整數表示該玩家對這項技能的第 i 級的效果評分,
分數不超過 20。在技能描述之后是玩家所用角色的描述,共有兩行。第一行是一個整數 P(0<=P<=100),表
示目前所擁有的技能點數。接下來一行是 n 個整數,依次表示角色當前所習得的技能級別,0 表示尚未學習。這里

不會出現非法的情況,譬如在沒有學習某項技能的時候已經習得了它的后繼技能。
【輸出格式】
只需包括一個整數 S,表示你的技能點最佳分配方案所得到的分數總和。
【輸入樣例】
3
Freezing Arrow
Ice Arrow
3
3 3 3
15 4 6
Ice Arrow
Cold Arrow
2
4 3
10 17
Cold Arrow
?
3
3 3 2
15 5 2
10
0 0 1
【輸出樣例】
42
【時間限制】
1s
【空間限制】
64M

//------------------------------------------------------------------------------------------------

分析:樹形動規,多叉樹轉二叉樹.

f[i,j]表示以i為根的子樹,花j點技能點,能得到的最大分數.

枚舉給左右兒子分配的點數進行轉移,記憶化搜索.

code:

type skill=recordn,f:string;l:longint;v,p:array[0..21] of longint; end; const maxn=21;maxp=101; var s:array[0..maxn] of skill;f:array[0..maxn,0..maxp] of longint;learn,l,r:array[0..maxn] of longint;n,i,j,fa,tmp,p,ans:longint;function find(st:string):longint;var o:longint;beginfor o:=1 to n doif s[o].n=st then exit(o);exit(0);end;function maxx(a,b:longint):longint;beginif a>b then exit(a); exit(b);end;function DP(t,m:longint):longint;var max,now,o,cost,value,q:longint;beginif f[t,m]>=0 then exit(f[t,m]);max:=DP(r[t],m); //不學這種技能if learn[t]>0 then //已經學過的話,向下接著學for o:=1 to m dobeginnow:=DP(l[t],o)+DP(r[t],m-o);max:=maxx(max,now);end;cost:=0;value:=0;for o:=learn[t]+1 to s[t].l do //把這個技能接著學下去begincost:=cost+s[t].v[o];value:=value+s[t].p[o];for q:=0 to m-cost dobeginnow:=DP(l[t],q)+DP(r[t],m-cost-q)+value;max:=maxx(max,now);end;end;f[t,m]:=max;exit(max);end;beginassign(input,'skill.in'); reset(input);assign(output,'skill.out'); rewrite(output);readln(n);for i:=1 to n dobeginreadln(s[i].n);readln(s[i].f);readln(s[i].l);for j:=1 to s[i].l do read(s[i].v[j]);readln;for j:=1 to s[i].l do read(s[i].p[j]);readln;end;readln(P);for i:=1 to n do read(learn[i]);for i:=1 to n dobeginfa:=find(s[i].f);if l[fa]=0 then l[fa]:=ielsebegintmp:=l[fa];while r[tmp]<>0 do tmp:=r[tmp];r[tmp]:=i;end;end;fillchar(f,sizeof(f),255);for i:=0 to maxp do f[0,i]:=0;ans:=DP(l[0],P);writeln(ans);close(input);close(output); end.

轉載于:https://www.cnblogs.com/exponent/archive/2011/08/06/2129483.html

總結

以上是生活随笔為你收集整理的树形动规_(技能树)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美精品久久久久性色 | 欧美区国产区 | av色图在线| 亚洲在线视频免费观看 | 天海翼一区二区三区 | 亚洲天堂自拍偷拍 | 视频免费在线 | 自拍99| 色导航| 成年人午夜免费视频 | 国产伦精品视频一区二区三区 | 操你啦在线视频 | 一区二区三区四区在线免费观看 | 欧美色图亚洲自拍 | 国产盗摄av | 动漫羞羞| 色污网站| 永久av在线免费观看 | 你懂的在线网站 | 国产精品久久久久9999爆乳 | 国产精品情侣 | 亚洲女同一区 | 在办公室被c到呻吟的动态图 | 动漫av网站 | 黄网站视频在线观看 | 性欧美成人播放77777 | 午夜视频在线瓜伦 | 日日操日日干 | jizzjizz在线播放| 国产成人福利 | 精品国产一区二 | a在线| 综合久久久久综合 | 国产精品 欧美 日韩 | 亚洲国产婷婷 | 纯爱无遮挡h肉动漫在线播放 | 欧美日韩性| 欧美在线免费看 | av合集| 日韩毛片无码永久免费看 | 中文字幕免费高清在线观看 | 大黄毛片 | 中文字幕一区不卡 | 性久久久久久久久 | 夜色精品 | 五月婷婷深深爱 | 韩国av电影网站 | 午夜色大片 | 天天干夜夜嗨 | 亚洲精品aⅴ中文字幕乱码 国产精品调教视频 | 亚洲看片网 | 精品h视频 | 超碰在线免费 | 欧美性粗暴| 一级坐爱片 | 欧美三区在线观看 | 无套日出白浆 | av电影中文字幕 | 欧美国产日韩一区二区三区 | 福利视频免费 | 男操女视频在线观看 | 日本公与丰满熄 | 亚洲在线观看av | 欧美黄色录像片 | 国产精品老熟女视频一区二区 | 亚洲高清无码久久久 | 91免费版在线看 | 国产69视频在线观看 | 羞羞软件 | 99久久婷婷 | 少妇又紧又深又湿又爽视频 | av福利在线播放 | 久草视频免费看 | 韩国一级淫片 | 美女少妇一区二区 | 天天躁日日躁狠狠躁欧美 | 亚洲精品动漫在线观看 | aaaa黄色片 | 中文字幕一区二区三区精华液 | 一区二区xxx | 成人免费视频免费观看 | 26uuu精品一区二区在线观看 | 久久性生活 | 久草国产在线观看 | www.五月天com| 91黑丝美女| 成人午夜免费在线 | 激情网页 | 国产av国片精品 | 在线观看黄色av网站 | 一级片视频在线观看 | 熟女人妇 成熟妇女系列视频 | 在线一区二区三区四区五区 | 亚洲一区视频 | 日日操夜夜爽 | 欧美黑人精品一区二区不卡 | 午夜精品在线视频 | 在线视频观看一区 | sesese99 |