51nod 1459 迷宮遊戲
你來到一個迷宮前。該迷宮由若干個房間組成,每個房間都有一個得分,第一次進入這個房間,你就可以得到這個分數。還有若干雙向道路連結這些房間,你沿著這些道路從一個房間走到另外一個房間需要一些時間。遊戲規定了你的起點和終點房間,你首要目標是從起點儘快到達終點,在滿足首要目標的前提下,使得你的得分總和儘可能大。現在問題來了,給定房間、道路、分數、起點和終點等全部資訊,你能計算在儘快離開迷宮的前提下,你的最大得分是多少麼?
Input
第一行4個整數n (<=500), m, start, end。n表示房間的個數,房間編號從0到(n - 1),m表示道路數,任意兩個房間之間最多隻有一條道路,start和end表示起點和終點房間的編號。 第二行包含n個空格分隔的正整數(不超過600),表示進入每個房間你的得分。 再接下來m行,每行3個空格分隔的整數x, y, z (0<z<=200)表示道路,表示從房間x到房間y(雙向)的道路,注意,最多隻有一條道路連結兩個房間, 你需要的時間為z。 輸入保證從start到end至少有一條路徑。
Output
一行,兩個空格分隔的整數,第一個表示你最少需要的時間,第二個表示你在最少時間前提下可以獲得的最大得分。
Input示例
3 2 0 2 1 2 3 0 1 10 1 2 11
Output示例
21 6
時間和 分數 當時間相同的時候 選擇分數大的 dj
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
using namespace std;
int dis[10001];
bool f[10001];
int d[10001][1001];
int pre[10001];
int v[1001];
int main(){
int m,st,en,n;
cin>>n>>m>>st>>en;
for(int j=0;j<=n;j++){
for(int k=0;k<=n;k++){
d[j][k]=inf;
// if(j==k) d[j][k]=0;
}
}
for(int j=0;j<n;j++){
cin>>pre[j];
}
for(int j=0;j<m;j++){
int x,y,z;
cin>>x>>y>>z;
if (d[x][y] > z){
d[x][y]=z;
d[y][x]=z;
}
}
v[st]=pre[st];
mem(f,0);
for(int j=0;j<n;j++){
dis[j]=d[st][j];
if(d[st][j]<inf){
v[j]=v[st]+pre[j];
// cout<<v[j]<<endl;
}
}
f[st]=1;
int k,s;
for(int z=1;z<n;z++){
// i=1;
int mi=inf;
k=0;
for(int j=0;j<n;j++){
if(!f[j]&&dis[j]<mi){
k=j;
mi=dis[j];
}
}
f[k]=1;
for(int j=0;j<n;j++){
if(!f[j]){
if(dis[j]>dis[k]+d[k][j]){
dis[j]=dis[k]+d[k][j];
v[j]=v[k]+pre[j];
}
}
}
for(int j=0;j<n;j++){
if(dis[j]==dis[k]+d[k][j])
v[j]=max(v[j],pre[j]+v[k]);
}
}
if(st==en) dis[en]=0;
cout<<dis[en]<<" "<<v[en]<<endl;
}
相關文章
- 內容是超正統的迷宮RPG?PSP遊戲《迷宮旅人2》深度解析遊戲
- Python 精靈模組_迷宮房間類遊戲Python遊戲
- 用webgl打造自己的3D迷宮遊戲Web3D遊戲
- 簡單介紹Python迷宮生成和迷宮破解演算法Python演算法
- PHP 生成迷宮路線PHP
- 【面試】如何找到迷宮出口面試
- JAVA 實現《複雜迷宮》遊戲|CSDN創作打卡Java遊戲
- PHP 解迷宮之 H 最小PHP
- Python迷宮生成器Python
- 藍橋杯-走迷宮(BFS)
- PHP 解迷宮之 G + H 最小PHP
- 用 Canvas + WASM 畫一個迷宮CanvasASM
- 回溯法解決迷宮問題
- 隨機迷宮生成演算法隨機演算法
- 如何用程式解圖片迷宮?
- C語言動態走迷宮C語言
- 藍橋杯-迷宮(BFS+DFS)
- 如何用js寫一個簡單的迷宮和打地鼠遊戲JS遊戲
- 解密迷宮問題:三種高效演算法Java實現,讓你輕鬆穿越未知迷宮解密演算法Java
- 華為優招面試題---迷宮問題面試題
- 寒假補充專案-回溯法走迷宮
- 用C語言解決迷宮問題C語言
- 7-12 求迷宮最短通道(整合版)
- 【Javascript + Vue】實現隨機生成迷宮圖片JavaScriptVue隨機
- C++實現迷宮的生成與解決C++
- 【dawn·資料結構】迷宮問題(C++)資料結構C++
- 【ybt高效進階1-5-1】走迷宮
- 迷宮問題——最短程式碼,不到70行
- HDU-1272 小希的迷宮 並查集並查集
- 青瓷遊戲宣佈《不思議迷宮》終止與臺服運營商合作遊戲
- 洛谷 p1605 迷宮問題 詳解
- 使用A*演算法解迷宮最短路徑問題演算法
- POJ 2251-Dungeon Master(BFS-三維迷宮)AST
- 迷宮問題【資料結構實驗報告】資料結構
- C++基於控制檯的迷宮實現(上)C++
- HDU 1272小希的迷宮(簡單並查集)並查集
- 試題集—— 演算法提高 學霸的迷宮演算法
- “不可思議迷宮”系列:能玩1000次的RPG與日本遊戲婆羅門遊戲