POJ 1734 Sightseeing trip ( 圖論二點)

【最短路徑:這是我在這次學習圖論的這個部分的第二個點,第一個點是判斷是否有負權迴路,不過還沒來得及把分析和總結再溫習一遍,那麼今天就先把這個剛想通的題先寫出來】題目:求一個圖中的最小環,並求路徑。分析:我在網上了看了好多人的分析,都是比較簡潔的,大家也都一語道破這道題肯定是用floyd演算法來解決。所以在此,我重點地談談遇到這道題的分析過程。首先,這個問題比較關鍵的字眼,應該就是“最小環”,要求出最小,一般是要枚舉出來所有環。但是,如果把最有環的枚舉出來,那麼必定逾時啊,所以

UVa10048 Audiophobia (Floyd)

題目:任意兩點之間有多條路徑,每一條路徑上的最大權值是不一樣的,in other words,

UVa 11733 Airports( MST )

先建一棵最小產生樹,然後看有幾個連通分量,就建幾個機場,最後從已選擇的邊中,將刪除所有比建機場貴的邊,加上相應的機場數!解題思路要清晰代碼:#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace std;const int N = 10010;const int M = 100010;int T, A;int n, m,

UVa 11228 Transpartation System ( kruskal)

這道題本來很簡單的,思路也很簡單的,第一次wa了,後來才想明白這需要對kruskal有一定的認識思路,正常建最小產生樹,然後權值小於r的,就加在ans1上,大於等於r的,就加在ans2上;小於r的邊,如果加入樹中,那麼連通分量減1,設s為連通分量數目,開始等於n具體代碼如下:#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace

POJ 1163 經典三角形DP重寫

/*DP的經典入門題,我用三種方法重做一遍1.遞迴計算2.遞推計算3.記憶化搜尋*///方法一:#include <stdio.h>int a[100][100], N;int d( int i, int j ){return a[i][j] + ( i == N ? 0 : d(i+1, j) > d(i+1, j+1) ? d(i+1, j) : d(i+1, j+1) );}int main(){int i, j;scanf( "%d", &N );for(

UVa10099 The Tourist Guide(Floyd思想)

這道題和前兩天做過的那個雜訊汙染的題是很類似的,求s到d的所有路徑中能通過的最多人數大的路徑的流量那麼也是Floyd的思想,如果1和4之間插入了3,使得1到4的流量增加,那麼就是插入3即滿足條件:(1,3)> (1,4) && (3,4)>(1,4),取1,3 和3,4中較小的一個作為1,4的新值代碼如下:#include <cstdio>#include <cstring>#include <algorithm>using

341 Non-Stop Travel (Dijsktra)

這是一道很典型的單源點最短路徑問題,用Dij來解,記錄路徑,通過dfs來輸出路徑代碼如下:#include <cstdio>#include <cstring>const int N = 20;const int INF = 100000000;int n, s, t, ans, icase;int g[N][N], d[N], p[N];void dij() { int mi, v; for ( int i = 1; i <= n; ++i ) d[

UVa10986 Sending email(spfa)

有兩天沒有做題了,過年實在是事情很多,今天無論如何也要做一道題啦這道題,單源點最短路徑,我首先想到的時候Dijskra演算法,由於資料規模大,有鄰接表實現結果逾時,第一次提交還time

ZOJ 2753 Min Cut ( SW )

和之前做過的一道是一樣的,不同的是這道題要判斷是否連通代碼:(寫代碼一定要認真,一定一定)#include <cstdio>#include <cstring>#include <iostream>using namespace std;const int N = 550;const int INF = 0x3fffffff;int n, m;int v[N], g[N][N], d[N], father[N];int Stoer_wagner() {

UVa 929 Number Maze( Dijsktra + 優先隊列)

這道題是Dij的變體,由於最大的資料一共是10e6的規模,矩陣一定不過然後看一下變數,假設每個點發出四條邊(上,下,

Uva 429 Word Transformation ( 最短路徑 )

這道題一直是TLE,逾時,開始以為是演算法的問題,後來才知道是輸入的問題,太坑了這道題可以用BFS來解, floyd也沒有問題但是一定要注意,輸入單詞對的時候,結束符分兩種情況,一種是 幾組連續輸入中間的是空行為結束,最後一組資料是以EOF結束註:注釋掉的 有一部分是floyd算,但是一下正常的是用BFS解題代碼:#include <iostream>#include <cstdio>#include <string>#include <cstring&

sicp 習題2.29

(define (make-mobile left right) (list left right))(define mobile (make-mobile left right))(define (make-branch length structure) (list length structure))(define branch (make-branch length structure))(define (left-branch mobile) (car

HEU Minimum time(Dijsktra)

這道題坑在三個地方:第一,是忽略dij的最外層迴圈的次數應該是出現的節點的個數,而不是26次;第二,是忽略了除數為0的情況;第三,是輸入的問題,以後輸入單獨的字元,都用字串來處理代碼:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 30;const int INF =

uva821 Page Hopping( Floyd )

這個點的個數不是最大的編號,而是輸入中真實的點的個數比簡單的floyd的題目代碼:#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int N = 110;const int INF = 100000000;int g[N][N], a, b, id, sum, n[N], num;int main(){ int icase = 1;

UVa11631 Dark Roads(最小產生樹,鄰接表)

很裸的一道求最小產生樹的題,只是資料很大,要用鄰接表來儲存代碼:#include <cstdio>#include <cstring>#include <vector>using namespace std;const int N = 200010;const long long INF = 10000000000;int n, m, id, head[N];long long sum;struct edge{ int t, next; int

UVA 10258 Contest Scoreboard

#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>using namespace std;typedef struct person{ int number,solve,issub; int time[15],totaltime;} person;int main(){ /*freopen("in.txt","r",stdin);*/

CF 271D Good Substrings(trie樹)

除了圖論以外,隨便做一下資料結構,感覺挺不錯的分析題目:每個子串都是,如果能插入到字典樹,就答案加1,思想比較簡單,但是要注意的是,想問題要清楚,對於這道題,有一個k在限制,所以不必把所有的子串都插入,用字典樹的另一個目的在於能夠除重,是插入一個子串,就加1,而不是已有的子串也加1。另外,由於是子串,它不必一個一個子串完整的插入,比如說:asdfg這個字串,as是子串,asd也是子串,這時候如果as已經被插入了,那麼直接就遍曆到d了把插入進去,不用從頭再插一遍asd這個整個的子串。如果沒明白,那

UVA 10344

/*剛開始TLE 後來發現遞迴函式找到23點的時候推到上一層就不逾時了,好吧。。。*/#include <stdio.h>#include <string.h>#include <stdlib.h>int sign[100][10];int flag;void print( int *A, int *P, int cur ){int i, j, c1, c2, sum;if( cur == 5 ){for( i = 0; i < 81; i++

Light oj 2678 – Subsequence

題目連結題意:    有n個正整數組成的序列,給定一個整數s,求長度最短的連續序列,使他們的和大於或等於s。    關於這個題目,有多種的解法,如果枚舉起點和終點,時間複雜度為O(n^3),但如果我們用一個數組B把一段數的和存起來,B[i] = sum(a[1].....a[i])。這樣就可以把時間複雜度降到O(n^2)。   

HEU Mining Station on the Sea(最小費用最大流)

常規題目;最小費用最大流,如果是無向圖的話,一定用鄰接表去做。代碼://最小費用最大流,注意建圖的edge都是雙向的#include <cstdio>#include <cstring>#include <queue>#include <iostream>using namespace std;const int INF = 0x3fffffff;const int N = 350;int S = 0, E;int n, m, k, p,

總頁數: 61357 1 .... 15177 15178 15179 15180 15181 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.