Uva 383 Shipping Routes ( BFS )

這道題求最短路徑,每條路徑的權值是一樣的,所以BFS就夠了只是輸出要恨注意一下,比較複雜,空格空行,尤其是DATA 後面的代號,要有兩個空格代碼:#include <cstdio>#include <string>#include <iostream>#include <map>#include <cstring>#include <queue>using namespace std;const int N =

UVA 216

#include <stdio.h>#include <string.h>#include <math.h>#define MAX 200int n;int p[MAX], ans[MAX], used[MAX]; float x[MAX], y[MAX], min;float cal( float x1, float y1, float x2, float y2 ){return sqrt( pow(x1-x2, 2) + pow(y1-y2, 2) ) +

Hdu 1411 校慶神秘建築(歐拉四面體體積公式)

很簡單的題,把數帶進公式即可代碼:#include <cstdio>#include <cmath>double a, b, c, d, e, f;int main(){ while ( scanf("%lf%lf%lf%lf%lf%lf", &a, &b, &c, &d, &e, &f) != EOF ) { double tr1, tr2, tr3, tr4, temp, ans;

UVa 11244 counting stars ( 搜尋 BFS)

這道題,我承認特別水,但是我提交了第四次才過各種錯誤,前兩次是測試資料的輸出沒有注釋掉,後一次是把資料看錯了這樣的題不應該這麼慢,一次過是很正常的,因為太簡單了,這樣的錯誤千萬別犯了代碼:#include <cstdio>#include <cstring>const int N = 150;int r, c;char g[N][N];int main(){ while ( scanf("%d%d", &r, &c ) != EOF

kruskal+ 並查集

#include <iostream>#include <stdio.h>#include <string.h> #define MAX 20using namespace std;struct edge{ int u, v, w;}edges[MAX];int parent[MAX];int n, m;int i, j;void UFset( ){ for( i = 1; i <= n; i++ ) parent[i] = -1;

UVa 321 The New Villa ( BFS + 狀態壓縮判重)

題意:有幾個房間,從一個房間開始走,進入另一個房間的要求是燈要亮著,而且兩個房間之間是連通的。題目會給出房間的控制開關,也就是哪個房間的開關可以控制哪一個房間的開關。輸入有房間數,房間的串連數,和開關控制數,要求從走廊開始,走到臥室,而且最後只有臥室的燈是開著的,別的房間的燈都是關著的那麼這道題要注意的是,一個操作是一步,要求輸出走到臥室的最少操作,以及操作的順序關鍵在於建圖和判重,其他的就是BFS的模板即可由於要記錄操作順序,所以節點的結構設定也比較重要 The New Villa Mr.

HDU 3691 Nubulsa Expo(SW演算法求最小割)

題目:給出一個網路流圖,給定一個起點,匯點自己定,然後求這個圖的最小割。分析:枚舉匯點,時間是三秒,逾時!只能用這個辦法去求最小割了,我還不是不很懂這個演算法,只是理解了一些皮毛,在網上扒個代碼,先體驗一下,這個演算法和prim本質上是兩回事,但是實現是很像的,時間複雜度如果不用優先隊列最佳化的話是O(n^3),最佳化的話是O((n^2)logn)。具體演算法的理解我會在晚些時候寫總結,下面先把這題的代碼貼出來!代碼:#include <cstdio>#include

HDU 2121 Ice_Cream’s World II (最小樹形圖)

(還是比較靈異,我代碼重寫了一遍,就對了,之前不知道哪裡錯了,一直wa)題目分析出來就是無固定跟的最小樹形圖。無固定根的話,那就給定一個人工的根!然後複習一下最小樹形圖的建圖流程:1、首先,除了根節點以外,給每個節點找到一個最小入邊;然後檢查除根節點以外其他節點,如果有孤立的節點的話,說明無解!2、找環,因為只要到達環上的任意一點,那麼就可以到達這個環上的其他的所有的點,所以說,找一個對於一個環來講,入邊最小的邊作為環的入邊即可,因此我們可以把環看做是一個點,將環上的點的編號統一成一個,就是這個

UVA 539

/*好長時間沒有A題了,寫個簡單搜尋連memset( map, 0, sizeof(map) )都忘了,TLE了2次...唉...*/#include <stdio.h>#include <string.h>#define MAX 100int map[MAX][MAX], max;int vis[MAX][MAX];int node, elem;void dfs( int n, int cal ){int i;for( i = 0; i < node; i++ )

ZOJ 1649 Rescue (BFS)

題目大意:在一個矩陣裡,有五種字元,一種是起點,一種是終點,一種代表牆不能走的,一種代表警衛需要花時間殺警衛的,最後一種代表路,每走一個格要花一個單位時間,殺一個警衛要花一個單位時間。求從起點到終點,花得最短時間!分析:最短路徑,其實很簡單的,bfs搜尋,然後判斷一下是不是牆,是不是警衛和路,分別處理;在用一個數組d來記錄每個點到起點的最短路徑,同時也是用來標記已經遍曆過的狀態。代碼:#include <cstdio>#include <cstring>#include

UVa 10801 Lifting Hopping (Dijsltra)

這道題的建圖,比較有講究,開始想了很久,到底是怎麼建圖能體現現出換電梯需要六十秒!後來參考了別人的思路,就是只要一條邊走到頭,就換電梯,也就是換邊就是換電梯。建圖,把每個電梯能到達的樓層,兩兩之間有一條邊,如果有其他電梯的這條邊更短,選擇更短的。每次換邊的時候,要注意加60,因為需要60秒;最後結構要-60,因為第一次進電梯不需要60;如果去第0層,就是另外處理,是0,否則正常輸出的是-60代碼:#include <cstdio>#include

HDU 1885 Key Task(狀態壓縮+BFS)

這道題和UVA上面的一道題目很類似,需要鑰匙的題目,那道題是開關,也差不多。不同的是,那道題不需要走到需要關燈的房間就能控制,而這個需要走到門的位置。還有就是房間的表示是不一樣的,那個是一維的這個是二維。但是思想都是一樣題目:矩陣,有的地方有鑰匙,有的地方有門,有的是牆,有的是起點還有終點,還有路。門必須用相應的鑰匙可以開啟。出口有多個,這個要注意。第一次wa就是wa在這裡了,因為,在break一次後,外層迴圈也需要一個break,可以小妞我給忘了!!!好吧,說一下分析:主要有一點藥想明白,標記

UVa10004 Bicoloring (dfs水題)

這個題目的意思就是用兩個顏色給圖中每個點塗色,使相鄰的點顏色不同。如果能有一個這樣的方案,那麼就輸出"BICOLORING." 否則輸出"NOT BICOLORING."。 資料規模是n最大為200.很典型的搜尋題目代碼如下:#include <cstdio>#include <cstring>const int N = 210;int n, l, map[N][N];int vis[N];bool dfs( int x ) { for ( int i = 0;

圖的鄰接表

#include <stdio.h>#include <stdlib.h>#include <malloc.h>#define MAX 100struct ArcNode //邊節點 { int adjvex; ArcNode *nextarc;};struct VNode{ int data; ArcNode *head1; //

UVa10305 Ordering Tasks(拓撲排序水題)

這道題很顯然是拓撲排序,很水的題。一種是dfs方法,另一種是不用dfs代碼如下:dfs:#include <cstdio>#include <cstring>const int N = 110;int n, m, c[N], topo[N], t, map[N][N];bool dfs(int u) { c[u] = -1; for ( int v = 1; v <= n; ++v ) if( map[u][v] ) { if ( c[v]

HDU 3002 King of Destruction(SW求最小割的值)

還是一道很典型的求最小割的值,演算法依舊。這次做這道題,我類比了一下演算法實行,發現這個模板在對點刪除的處理上很巧妙。通過這次研究,演算法大致的步驟和實現方法,我已經知道是怎麼樣的流程,但是具體的證明之類的還是很迷糊。代碼如下:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int N = 110;

uva 10905

很水的貪心,重點在於如何排序字串。開始我用的排序方法是按字典序比,不過不一樣的是,如果前面的字母都一樣,單詞短的排前面,開始覺得沒什麼問題,後來遇見這個資料就跪了。。2 9909 990最後使用了c++ 的string比較, 思路是兩個string :  a  和  b   串連成a+b   或者b+a  ,直接比較即可。#include <iostream>#include <cstring>#include <cstdio>#include

UVa 10946 Do You What Filled? (DFS)

很顯然,資料這麼小,dfs必然會過的 按上下左右搜,然後搜過的標記一下,避免重複,就哦啦代碼如下:#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int N = 55;int n, m, id;char g[N][N];bool vis[N][N];struct node { char x; int

POJ 2914 Minimum Cut(求全圖的最小割Stoer-Wagner)

這道題,看題目就是知道了,就是求全圖的最小割。代碼是我在其他人的部落格上看到的,感覺很好,可以用做模板,就算是一個新的模板代碼如下://Stoer-Wagner#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace std;const int N = 550;const int INF = 0x3fffffff;int n,

UVA 424

//模板大水題#include <stdio.h>#include <string.h>#define MAX 500int sum[MAX];char num[MAX];int main(){freopen( "in.txt", "r", stdin );int i, j;memset( sum, 0, sizeof(sum) );while( scanf("%s", num) == 1 ){if( num[0] == '0' )break;for( i =

總頁數: 61357 1 .... 15176 15177 15178 15179 15180 .... 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.