1. 程式人生 > >【最多能夠承受的最大重量】poj 1797 Heavy Transportation

【最多能夠承受的最大重量】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 - 6351dfs+剪枝

【連結】 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元,在同一時間,我