【最多能夠承受的最大重量】poj 1797 Heavy Transportation
Problem Description
輸入T組測試資料,每組測試資料,輸入n,m分別代表n個城市,m條道路接下來m行,每行u,v,w分別代表u,v兩城市之間道路承受的重量。
思路:讓你求出從城市1到城市n最多能夠運輸最大重量,最短路的演算法,改變下條件
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int Map[1005][1005], n;
int dist[1005], vis[1005];
void dijkstra()
{
int i, j;
for (i = 1; i <= n; i++)
{
dist[i] = Map[1][i];
vis[i] = 0;
}
vis[1] = 1;
int u;
for(i = 1; i < n; i++)
{
int Min = -1;
for(j = 1; j <= n; j++)
{
if(!vis[j] && Min < dist[j])//找出最大的邊
{
Min = dist[j];
u = j;
}
}
if (Min == -1) break;
vis[u] = 1;
for(j = 1; j <= n; j++)
{
//起始點最多能夠承受的最大重量和起始點到下一個點的承受重量,求最小(滿足這個值,才能夠裝那麼多重量的東西過去)如果大於下一個點的最多能夠承受的最大重量。就更新
if(!vis[j] && dist[j] < min(Map[u][j], dist[u]))
dist[j] = min(Map[u][j], dist[u]);
}
}
}
int main()
{
int T, m, cas = 1, u, v, w;
scanf("%d", &T);
while(T--)
{
scanf("%d %d", &n, &m);
memset(Map, 0, sizeof(Map));
while(m--)
{
scanf("%d %d %d", &u, &v, &w);
if(Map[u][v] < w)//有重邊
Map[u][v] = Map[v][u] = w;
}
dijkstra();
printf("Scenario #%d:\n", cas++);
printf("%d\n\n", dist[n]);
}
return 0;
}
相關推薦
【最多能夠承受的最大重量】poj 1797 Heavy Transportation
Problem Description 輸入T組測試資料,每組測試資料,輸入n,m分別代表n個城市,m條道路接下來m行,每行u,v,w分別代表u,v兩城市之間道路承受的重量。 思路:讓你求出從城市1到城市n最多能夠運輸最大重量,最短路的演算法,改變下
POJ 1797 Heavy Transportation 【最短路思維+最大承載】
The first line contains the number of scenarios (city plans). For each city the number n of street crossings (1 <= n <= 1000) and number m of stree
POJ-1797 Heavy Transportation(最大生成樹)
ngs accept source total project tween task father then Heavy Transportation Time Limit: 3000MS Memory Limit: 30000K Total Submiss
POJ 1797 Heavy Transportation(最大生成樹)
題目大意:給定n個頂點,以及m條邊的描述,每條邊的描述包括:起點、終點、權重。現在要從頂點1出發到達頂點n,求路徑中能夠承受的最大權重。 解題思路:讀懂題意很重要,樣例比較水,要去深入理解題目,同時注意輸出格式。 1)本題要求出的是從頂點1到頂點n的所有可行路徑中各邊權值
POJ--1797 Heavy Transportation (最短路)
題目電波: POJ--1797 Heavy Transportation n點m條邊, 求1到n最短邊最大的路徑的最短邊長度 改進dijikstra,dist[i]陣列儲存源點到i點的最短邊最大的路徑的最短邊長度 #include<iostrea
POJ-1797 Heavy Transportation(最短路變形)
Heavy Transportation Time Limit: 3000MS Memory Limit: 30000K Total Submissions:
Poj 1797 Heavy Transportation (最短路變形)
題意:給你一張圖,有n個點,m條邊。讓你求出從1點到n點的所有通路中最小邊的最大值。 題解:最短路的變形。把dijkstra中dis陣列中存的東西改成最小邊的最大值。每次找最大邊來作比較。然後更新di
oracle 中 一張表最多能夠建立多少個欄位?
oracle 中 一張表最多能夠建立多少個欄位? 收藏帖子 回覆 比比路克 結帖率 100% help! 問題點數:20分 0 2002-01-25 15:51:39 回覆數 4 只看樓主 引
求一個數組中重複元素出現最多值,最大的元素及出現次數,次數相同時,取最大值,優先考慮次數
#include <iostream> #include <string> #include <map> using namespace std; void maxNumTimes(int a[], int len, int b[])
【2018多校Beautiful Now HDU - 6351】【dfs+剪枝】
【連結】 http://acm.hdu.edu.cn/showproblem.php?pid=6351 【題意】 大意就是給你一個數n,求在最多k次得交換下,能夠得到的最大的數和最小得數是多少,且數不能有前導0 【分析】 數的大小不超過1e9,也就是9位數字。 顯然地,n個數
【Java多執行緒程式設計核心技術】第一章(多執行緒技能suspend,resume,yield)
1.8 暫停執行緒 在多執行緒中,suspend是暫停執行緒,resume是恢復執行緒的執行. 1.8.1suspend方法和resume方法的使用 public class MyThread extends Thread { private lon
【Java多執行緒程式設計核心技術】第一章(多執行緒技能 執行緒的優先順序)
1.8 執行緒的優先順序 在作業系統中,執行緒可以劃分優先順序,優先順序較高的執行緒得到的cpu的資源較多,也就是cpu優先執行優先順序較高的執行緒物件中的任務. 在Java中,執行緒優先順序分為1~10個等級,如果小於1大於10,則JDK丟擲異常,原始碼如下:
zookeeper-分散式鎖的程式碼實現-【每日五分鐘搞定大資料】
本文涉及到幾個zookeeper簡單的知識點,永久節點、有序節點、watch機制。比較基礎,熟悉的就別看了跳過這篇吧 每個執行緒在/locks節點下建立一個臨時有序節點test_lock_0000000040 獲得/locks節點下所有子節點A、B、C,排序獲得最小值 若當前節點B為最小值則獲得鎖,執
【C++多執行緒程式設計學習(1)】-CPU個數、CPU核心數、CPU執行緒數
轉自:CPU個數、CPU核心數、CPU執行緒數(by kimsimple) CPU個數即CPU晶片個數。 CPU核心數是指物理上,也就是硬體上存在著幾個核心。比如,雙核就是包括2個相對獨立的CPU核心單元組,四核就包含4個相對獨立的CPU核心單元組。 CPU執行緒數是一
【Java多執行緒程式設計核心技術】第四章 Lock的使用
使用ReentrantLock類 Lock lock = new ReentrantLock(); lock.lock(); //同步的程式碼段 ... lock.unlock(); Condition用法:await(), signal()方法呼叫之前需要呼叫lock.loc
【Java多執行緒程式設計核心技術】第三章 執行緒間通訊
等待/通知機制 public final native void wait(long timeout) throws InterruptedException; /* @throws IllegalMonitorStateException if the current th
【Java多執行緒程式設計核心技術】第二章 物件及變數的併發訪問
synchronized關鍵字 sychronized取得的鎖都是物件鎖,而不是把一段程式碼或方法(函式)當做鎖。 鎖重入功能:當一個執行緒得到一個物件鎖後,再次請求可以再次得到該物件的鎖 出現異常,鎖自動釋放 同步不具有繼承性 class Bas
【Java多執行緒程式設計核心技術】第一章 Java多執行緒技能
執行緒的啟動及常用方法 對於執行緒的啟動來說,首先涉及到的就是run()和start()這兩個方法。一種方法是繼承Thread類,覆蓋run方法;一種是實現Runnable介面。 因為開啟執行緒的start方法只在Thread類中存在,所以兩種方法都需要藉助Thread類中的st
安卓選擇圖片上傳功能【支援多選拍照預覽等】
在網上找了很多第三方的相簿拍照框架,都不盡人意,最後終於找到了一個比較好的框架,並且整合到了自己的demo中,花了兩天的時間吧感覺挺值的。老規矩不說廢話,直接上程式碼。 感謝某開源庫的作者:Alum 思路 目錄 先看目錄,我儘可能的在自己力所能及的範圍
【Java多執行緒與併發庫】3.傳統執行緒互斥技術
執行緒的同步互斥與通訊 互斥的問題在使用執行緒的時候是我們必須要注意的。 例如兩個執行緒同時開啟,由於業務規則,需要訪問同一個物件,要取得該物件 中的資料進行修改。 這樣多個執行緒對同一個資料進行操作的例項有很多,例如銀行交易。我們的賬戶中原來 有2000元,在同一時間,我