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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

nyoj--203--三国志(迪杰斯特拉+背包)

發(fā)布時間:2024/9/5 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nyoj--203--三国志(迪杰斯特拉+背包) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

三國志

時間限制:3000 ms ?|? 內(nèi)存限制:65535 KB 難度:5 描述

《三國志》是一款很經(jīng)典的經(jīng)營策略類游戲。我們的小白同學是這款游戲的忠實玩家。現(xiàn)在他把游戲簡化一下,地圖上只有他一方勢力,現(xiàn)在他只有一個城池,而他周邊有一些無人占的空城,但是這些空城中有很多不同數(shù)量的同種財寶。我們的小白同學虎視眈眈的看著這些城池中的財寶。

按照游戲的規(guī)則,他只要指派一名武將攻占這座城池,里面的財寶就歸他所有了。不過一量攻占這座城池,我們的武將就要留守,不能撤回。因為我們的小白手下有無數(shù)的武將,所以他不在乎這些。

從小白的城池派出的武將,每走一公理的距離就要消耗一石的糧食,而他手上的糧食是有限的。現(xiàn)在小白統(tǒng)計出了地圖上城池間的道路,這些道路都是雙向的,他想請你幫忙計算出他能得到 的最多的財寶數(shù)量。我們用城池的編號代表城池,規(guī)定小白所在的城池為0號城池,其他的城池從1號開始計數(shù)。

輸入
本題包含多組數(shù)據(jù):
首先,是一個整數(shù)T(1<=T<=20),代表數(shù)據(jù)的組數(shù)
然后,下面是T組測試數(shù)據(jù)。對于每組數(shù)據(jù)包含三行:
第一行:三個數(shù)字S,N,M
(1<=S<=1000000,1<=N<=100,1<=M<=10000)
S代表他手中的糧食(石),N代表城池個數(shù),M代表道路條數(shù)。
第二行:包含M個三元組行 Ai,Bi,Ci(1<=A,B<=N,1<=C<=100)。
代表Ai,Bi兩城池間的道路長度為Ci(公里)。
第三行:包含N個元素,Vi代表第i個城池中的財寶數(shù)量。(1<=V<=100)
輸出
每組輸出各占一行,輸出僅一個整數(shù),表示小白能得到的最大財富值。
樣例輸入
2 10 1 1 0 1 3 2 5 2 3 0 1 2 0 2 4 1 2 1 2 3
樣例輸出
2 5
來源
鄭州大學校賽題目
上傳者

張云聰



#include<stdio.h> #include<string.h> #include<algorithm> #define INF 0x3f3f3f3f #define N 110 using namespace std; int map[N][N]; int vis[N]; int dis[N]; int d[N]; int dp[N*10000]; int z,n,m; int dijst() {int min,i,j,k,sum;memset(vis,0,sizeof(vis));for(i=0;i<=n;i++)dis[i]=map[0][i];vis[0]=1;for(j=1;j<=n;j++){min=INF;k=0;for(i=0;i<=n;i++){if(!vis[i]&&dis[i]<min){k=i;min=dis[i];}}vis[k]=1;for(i=0;i<=n;i++){if(!vis[i]&&dis[k]+map[k][i]<dis[i])dis[i]=dis[k]+map[k][i];}} } int main() {int t,a,b,c,i,j;scanf("%d",&t);while(t--){memset(map,INF,sizeof(map)); scanf("%d%d%d",&z,&n,&m);while(m--){scanf("%d%d%d",&a,&b,&c);if(c<map[a][b])map[a][b]=map[b][a]=c;}for(i=1;i<=n;i++)scanf("%d",&d[i]); dijst();memset(dp,0,sizeof(dp));for(i=1;i<=n;i++){for(j=z;j>=dis[i];j--){dp[j]=max(dp[j],dp[j-dis[i]]+d[i]);}}printf("%d\n",dp[z]);}return 0; }


轉(zhuǎn)載于:https://www.cnblogs.com/playboy307/p/5273723.html

總結(jié)

以上是生活随笔為你收集整理的nyoj--203--三国志(迪杰斯特拉+背包)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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