Time of Update: 2018-12-03
想看更多的解題報告: http://blog.csdn.net/wangjian8006/article/details/7870410
Time of Update: 2018-12-03
想看更多的解題報告:http://blog.csdn.net/wangjian8006/article/details/7870410
Time of Update: 2018-12-03
想看更多的解題報告:http://blog.csdn.net/wangjian8006/article/details/7870410 轉載請註明出處:http://blog.csdn.net/wangjian8006題目大意:題目大意是:在一個牧群中,有N個奶牛,給定M對關係(A,B)表示A仰慕B,而且仰慕關係有傳遞性,問被所有奶牛(除了自己)仰慕的奶牛個數解題思路
Time of Update: 2018-12-03
想看更多的解題報告:http://blog.csdn.net/wangjian8006/article/details/7870410 轉載請註明出處:http://blog.csdn.net/wangjian8006題目大意:如果v點能夠到的點,反過來能夠到達v點,則稱這個點為sink點,輸出所有的sink點解題思路:求連通分量,然後出度為0的連通分量裡面的點就是s
Time of Update: 2018-12-03
轉載請註明出處:http://blog.csdn.net/wangjian8006dijkstra演算法:首先他的思想是按路徑長度遞增次序產生最短路徑演算法,將d[i]看成從1到i的最短路徑,那麼如果v是i的鄰邊的話有d[i]=min(d[i],d[v]+map[v][i]),並且這個演算法只能求單源非負權值最短路徑 void dijstra(){int i,j,ans=-1,min,v;int d[MAXV],vis[
Time of Update: 2018-12-03
題意:股票經紀人之間傳遞謠言. 給出一個股票經紀人的聯絡網路: a聯絡到b用時w.求: 選擇哪一個人作為謠言的源頭可以使得謠言傳到所有人最快, 以及傳到所有人所用時間.思路:Floyd演算法可以求出全源最短路. 只要枚舉每一個源s, 記錄s到其他人的最大時間t, 比較t, 最小的那個對應的s即為所求.#include <cstdio>#include <cstring>using namespace std;const int INF =
Time of Update: 2018-12-03
參考:1. 郭華陽 - 算法合集之《RMQ與LCA問題》. 講得很清楚!2. http://www.cnblogs.com/lazycal/archive/2012/08/11/2633486.html3. 代碼來源yejinru題意:有一棵樹, 按照順序給出每條邊, 再給出若干對點, 這兩點之間的唯一的路( Simple path )上邊權加1. 當所有對點處理完後, 按照邊的輸入順序輸出每條邊的權.思路:LCA問題.最近公用祖先(Least Common
Time of Update: 2018-12-03
題意:求一個圖的割點. 輸入略特別: 先輸入圖中點的總數, 接下來每一行首先給出一個點u, 之後給出一系列與這個點相連的點(個數不定). 行數也不定, 用0作為終止.這樣的輸入還是要保證以數字讀入吧...gets沒前途的思路:割點的模板啦~#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 105;bool
Time of Update: 2018-12-03
題意:有棵蘋果樹,根節點編號為1.邊權為該邊上蘋果數. 問保留x條樹枝時, 能夠保留的最多蘋果數.思路:樹DP.令dp[ i ][ j ] 表示以 i 為根的子樹保留 j 條樹枝(包括 i 與其父節點相連的那一條在內)最多有多少蘋果.枚舉關於子樹的不同分配方案, 選擇最大的.樹DP的特殊之處就在於它的第一維的變化是沿著dfs的方向走的.#include <cstdio>#include <cstring>const int MAXN = 111;int n, m,
Time of Update: 2018-12-03
Prim(添點法)1. 任選一點(一般選1), 作為切入點,設其與最小產生樹的距離為0(實際上就是選一個點,將此樹實體化),.2. 在所有未選擇的點中選出與最小產生樹距離最短的, 累計其距離, 並標為已選. 若都選擇了, 則得到了最小產生樹(的總路長).3. 更新與此點相鄰的點"與最小產生樹的距離".返回2.#include <cstdio>#include <cstring>#include <vector>#include
Time of Update: 2018-12-03
想看更多的解題報告:http://blog.csdn.net/wangjian8006/article/details/7870410
Time of Update: 2018-12-03
題意:求最小產生樹的邊長和.#include <cstdio>#include <vector>#include <algorithm>using namespace std;const int MAXN = 30;int f[MAXN];int n;typedef struct edge{ int u,v,w; edge(){} edge(int _u, int _v, int
Time of Update: 2018-12-03
在之前我做這道題時沒有看懂什麼意思,過了一段時間,終於解出來了。其實 ,這道題比較簡單,個人覺得題目描述不怎麼清楚。描述電腦科學中的一個基本問題是排序問題,對這個問題現在有許多解決方案,如排序演算法。一些排序演算法是簡單得可以靠直覺就得知的,如冒泡法排序。另外一些如堆排序就不這麼簡單了,但能迅速地得到排序結果。下面列出了一些排序的演算法,當然,在這兒不能告訴你如何執行他們,你必須自己掌握這些知識。 Bubble sort 冒泡排序 Heap sort 堆排序 Insertion
Time of Update: 2018-12-03
題意:...不多說注意:輸入是矩陣...有了並查集, 怎麼也不想寫Prim了....#include <cstdio>#include <vector>#include <algorithm>using namespace std;const int MAXN = 105;int f[MAXN];int n;typedef struct edge{ int u,v,w; edge(){} edge(int _u, int _v, int
Time of Update: 2018-12-03
想看更多的解題報告:http://blog.csdn.net/wangjian8006/article/details/7870410 轉載請註明出處:http://blog.csdn.net/wangjian8006題目大意:有多種從a到b的匯率,在你匯錢的過程中還需要支付手續約,那麼你所得的錢是
Time of Update: 2018-12-03
題意:有一群牛, a會認為b很帥, 且這種認為是傳遞的. 問有多少頭牛被其他所有牛認為很帥~思路:關鍵就是分析出縮點之後的有向樹只能有一個葉子節點(出度為0).做法就是Tarjan之後縮點統計出度.#include <cstdio>#include <cstring>#include <stack>#include <algorithm>using namespace std;const int MAXN = 10005;const int
Time of Update: 2018-12-03
想看更多的解題報告:http://blog.csdn.net/wangjian8006/article/details/7870410
Time of Update: 2018-12-03
想看更多的解題報告:http://blog.csdn.net/wangjian8006/article/details/7870410 轉載請註明出處:http://blog.csdn.net/wangjian8006題目大意:首先給你一個圖,需要你求出最小產生樹,輸入N個節點,用大寫字母表示了節點,然後節點與節點之間有權值。比如有9個節點,然後接下來有n-
Time of Update: 2018-12-03
想看更多的解題報告:http://blog.csdn.net/wangjian8006/article/details/7870410
Time of Update: 2018-12-03
想看更多的解題報告: http://blog.csdn.net/wangjian8006/article/details/7870410 轉載請註明出處:http://blog.csdn.net/wangjian8006題目大意:讓一隻貓咪去做訓練,在此之前任何貓咪沒有花生:g i:讓第i只小貓拿到一顆花生e i:讓第i只小貓吃掉它所擁有的所有花生s i