POJ 2485-Highways 最小產生樹Prim演算法

題目來源:http://acm.pku.edu.cn/JudgeOnline/problem?id=2485 解題報告: 還是最小產生樹問題,Prim演算法實現,沒用到priority_queue或是set,還是直接用O(n)複雜度來尋找key中的最小值。這道題很基礎,純粹用來熟練Prim演算法。 #include <iostream>using namespace std;#define INF 70000int N;//點的數目int key[500];bool flag[500

一道鏈表相關的筆試題

從網上搜到的筆經:題目大致如下:寫代碼。把一個單鏈表,按照指定位置逆序。並在code中體現基本錯誤異常處理之類。  不能再多malloc記憶體了,可以用temp pointers。還有一個不允許的什麼條件沒看懂,無 礙大雅吧。 eg。n1->n2->n3->n4->n5->null phead = n1;pstart = n3;返回這個n3->n2->n1->n5-> n4->null eg。n1->n2->n3->n

POJ 2533-Longest Ordered Subsequence 動態規劃

題目來源:http://124.205.79.250/JudgeOnline/problem?id=2533 解題報告: 這道題要求最長遞增子序列。 由於之前做的POJ 1836中用到的就是求最長遞增子序列的思路,所以這道題相對而言就很簡單了。設f[i]表示包含a[i]在內的最長遞增子序列的長度,則 f[i]=max(1,f[k1]+1, f[k2]+1,..., f[kn]+1),其中,k1,k2,...,kn滿足條件:k1,k2,...,kn

POJ 1121-UNIMODAL PALINDROMIC DECOMPOSITIONS 動態規劃

題目來源:http://poj.org/problem?id=1221解題報告:這道題求的是給定一個數字n,求n可以拆成多少種unimodal palindromic decompositions。也就是首先滿足迴文串的性質,然後前半部分是遞增順序的。我的解法是:取f[n][k],代表對n,取迴文串的第一個數>=k時的palindromic decompositions的種數。那麼,對f[n][k],先計算f'[n][k]代表迴文串的第一個數為k是的Palindromic

POJ 1308-Is It A Tree 並查集

題目來源: http://acm.pku.edu.cn/JudgeOnline/problem?id=1308 解題報告: 首先判斷這些點是否屬於同一個集合: 如果兩個點之間有邊相連,則它們屬於同一個集合 接著,判斷是否存在一個點入度為0,即根 再判斷,除了根以外的點,是否入度都為1, 如果滿足上述條件,則為樹. #include <iostream>using namespace std;int cnt=0;typedef struct _node{int key;int

POJ 3278-Catch That Cow 廣度優先搜尋BFS

題目來源:http://acm.pku.edu.cn/JudgeOnline/problem?id=3278 解題報告: 廣度優先搜尋,對點X,它鄰接的點有X-1, X+1, 2×X這樣從N開始對N鄰接的點進行搜尋,然後再以此廣度搜尋下去,直到搜尋到K得到的從N到K的最短路徑就是 最短時間。#include <iostream>#include <queue>using namespace std;int visit[200001];int d[200001];int

POJ 3126-Prime Path 簡單搜尋 BFS

題目來源:http://acm.pku.edu.cn/JudgeOnline/problem?id=3126 解題報告: 還是BFS,廣度優先搜尋對一個數abcd,那麼與它鄰接的數就是改變其中一個位的數字得到的當改變其中一位後,若該數為素數,且之前未被訪問過,則放入隊列中進行下一步的搜尋這樣,搜尋下去,直到搜尋到我們最終需要變成的那個數,退出輸出結果,應該是得到的從s到goal的最短路徑。 #include <iostream>#include <queue>using

POJ 1033-Defragment 簡單搜尋

題目來源:http://poj.org/problem?id=1033解題報告:這道題主要是問,要至少挪幾步,才能把各個節點的位置移到應該在的位置,並把要移動的步驟輸出。方法一:我這裡取了數組:a[i] 代表在i位置放了應該放在a[i]位置的節點b[i] 代表應該放在i位置的節點現在在b[i]位置搜尋的時候從i=1開始,如果a[i] == i,代表節點位置正確,不用移動如果a[i] != i,代表位置擺放不正確這裡,又分兩種情況:1) 如果a[i] == 0,說明

POJ 3414-Pots 簡單搜尋 BFS

題目來源:http://acm.pku.edu.cn/JudgeOnline/problem?id=3414 解題報告: 還是BFS 設(i,j)為瓶1與瓶2在某一時刻的容量,那麼從這點出發,可以到達的點有: (A, j) : FILL(1)(i, B) : FILL(2)(0, j): DROP(1)(i, 0): DROP(2)(i+j, 0) or (A, j-A+i) : POUR(2,1)(0, i+j) or (i-B+j, B) :

POJ 1251-Jungle Roads 最小產生樹Kruskal

題目來源: http://acm.pku.edu.cn/JudgeOnline/problem?id=1251 解題報告: 典型的最小產生樹問題,我這裡用了Kruskal演算法實現 #include <iostream>#include <algorithm>using namespace std;struct edge{int weight;int u;int v;};edge E[360];int rank[26]; //用於並查集int parent[26]; //

uva 10887

是個 hash  用的容器類水過#include <iostream>#include <cstdio>#include <string>#include <set>#include <cstring>using namespace std;char A[1500][15];char B[1500][15];int main(){ int ca = 1; set<string> s1; int T;

使用fatjar打包

最近需要將一個項目打包成單獨的jar,而且這個項目引用了一些第三方的jar包,為了能夠將它們一起打包成一個jar檔案。我找到了一個比較好用的外掛程式fatjar。:http://sourceforge.net/projects/fjep/files/fatjar/解壓後把plugins/下的net.....拷貝到eclipse安裝目錄下的plugins檔案夾中,重新啟用Eclipse,開啟Eclipse,看到Windows->Preference下有fat jar

POJ 1182-食物鏈 並查集

題目來源: http://acm.pku.edu.cn/JudgeOnline/problem?id=1182 解題報告: 又是一道並查集的題, 但是比之前兩道要稍微複雜點了.  做了很長時間, 搜尋了其他的解題報告, 發現了一個很巧妙的方法 對每個結點i記錄一個kind[i]代表結點i 對 其父節點p[i]之間的關係 kind[i]=1 父吃子(p[i]吃i) kind[i]=2 子吃父(i 吃 p[i])  kind[i]=0 同類 (i 和 p[i]同類) 於是對並查集的三種基本操作

POJ 1258-Agri Net 最小產生樹Prim演算法

題目來源:http://acm.pku.edu.cn/JudgeOnline/problem?id=1258 解題報告: 典型的最小產生樹問題,這次用了Prim演算法,搞了很久,主要就是糾結在priority_queue的使用上,一開始使用優先隊列,但是又發現這沒有Decrease_key操作,後來改用Set,但是在自訂operator後遇到問題,用不來。。。。最後直接放棄,改用直接用O(n)的複雜度來尋找key的最小值,效率下降了,但是還是通過了。。。 #include

POJ 1260-Pearls 動態規劃

題目來源:http://124.205.79.250/JudgeOnline/problem?id=1260 解題報告: 一開始覺得可以用貪心演算法,後來發現是不對的,比方說對如下的測試資料:10 105  1510 23就不行了。還是要用動態規劃來解 我設f[k]代表只買前k個,可以花的最少的錢。則f[k]=min( (a1+a2+...+ak+10)*pk, f[1]+(a2+...+ak+10)*pk, ... ,f[k-1]+(ak+10)*pk )顯然,最後的f[n]就是所需求的。 #

POJ 1011-Sticks 簡單搜尋DFS

題目來源: http://acm.pku.edu.cn/JudgeOnline/problem?id=1011 解題報告: 想了兩天, 看了其他的解題報告, 終於稍微想通了一點 具體的思路, 我也說不清楚, 有一份解題報告蠻清楚的, 是: http://blog.csdn.net/woshixingaaa/archive/2010/05/14/5589100.aspx  下面是My Code: #include <iostream>#include <algorithm>

POJ 1094-Sorting It All Out 拓撲排序

題目來源:http://acm.pku.edu.cn/JudgeOnline/problem?id=1094 解題報告: 每添加一條邊,就檢查一次是否可以對排序次序進行確定。 每一次檢查時,對已形成的圖進行深搜,如果在深搜時遇到了灰色結點,就說明圖中存在反邊,即Inconsistency found;深搜的同時將結點按照訪問結束的順序放入隊列Q1中,最後獲得的Q1就是拓撲排序的結果,設為ABCD...,如果對隊列中的連續的亮點,它們的關係是確定的,即存在A->B->C->D-&

uva 10131

DP 先對大象體重排序   然後尋找智力的最長升序子列  輸出路徑....#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#define inf 0x7fffffffusing namespace std;typedef struct{ int w,s,num;} elem;bool cmp(elem a, elem b){

POJ 1789-Truck History 最小產生樹 Kruskal演算法

題目來源:http://acm.pku.edu.cn/JudgeOnline/problem?id=1789 解題報告: 還是典型的最小產生樹的問題,我用了Kruskal演算法,discuss裡說,Prim演算法適合稠密圖,Kruskal演算法適合稀疏圖。這道題顯然是稠密圖,所以應該用Prim演算法比較合適,不過我還是不太會用prioriy_queue,只能用Kruskal演算法。。。 #include <iostream>#include

uva 562

簡單背包   容量為所有硬幣和的一半#include <iostream>#include <cstring>#include <cstdio>#include <cstdlib>using namespace std;int a[110];int f[51000];int main(){ int t; scanf("%d",&t); while(t--) { memset(f, 0,

總頁數: 61357 1 .... 15150 15151 15152 15153 15154 .... 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.