25 7 2012 ICPC培訓 第十天

2021-06-08 00:56:49 字數 1406 閱讀 1292

啦啦啦

又來嘍今天一直在做小生成樹問題。總共刷了7題,用來兩種演算法,prime和kurskal。

而且還都是hdu暢通工程系列的。

上午把prime演算法的模板謝了出來,然後用模板刷了三題。

hdu1863、hdu1233、hdu1879

由於**神似呀,這裡只貼1863的**了。

**:

#include#include#includeusing namespace std;

const int maxn=101; //頂點數

const int inf=0x7fffffff;

struct edge //邊

;int choosed[maxn]; //已選邊

int unchoosed[maxn]; //未選邊

int nodenum,edgenum,mst; //頂點數、邊數、最小生成樹

bool choose[maxn]; //頂點是否已選

vectormyv[maxn]; //圖的鄰接表

/* //這是無向圖有重複邊的建圖,取重複邊中最小的邊儲存

bool exist(int from,int to,int cost)}}

if(smallflag)

};struct location //小島位置

temp[maxn];

int father[maxn]; //用來做並查集

int nodenum,edgenum; //頂點數、邊數

double mst; //最小生成樹

priority_queuemyq; //kruskal演算法,存放邊

void inputlocation() //輸入小島位置

else

edgenum++;

edge e;

e.from=from;

e.to=to;

e.cost=cost;

myq.push(e);}}

}

int find(int x) //查詢

bool judge() //判斷是否是一棵最小生成樹

{ int f=find(0);

for(int i=1;i

然後呢,又用kruskal模板a了hdu1301、1162、1102

基本就沒遇到啥障礙了,求最小生成樹沒太大的問題,有時需要在建圖上做點文章,其他都很套路化。

還有就是kruskal演算法的時間複雜度為o(nlogn)的。

另外,還想說的是stl給我們帶來很大的方便,包含標頭檔案,直接調函式,個人覺得還是不能過度依賴。。。

最後,明天下午是第三次比賽啦。

聽說不會太難的,希望自己能ak啦。。。

ICPC編碼建議

寫 最重要的是清晰,包括思路的清晰和 結構的清晰。我們無法保證寫的 一定是正確的,但我們可以保證自己是在頭腦清晰的情況下書寫,並且通過不斷的練習,用更加清晰的 結構實現。越清晰,程式就越可能正確,並且即使出錯也很容易看到問題。0 在能過題的情況下,最樸素最好寫的方式就是最好的。1 double x ...

ICPC練習 2021ICPC亞洲區域賽南京

感覺刷cf遇到了一點瓶頸,開啟真題練習計畫。比賽鏈結 a比較簡單的構造,上下和左右分開,乙個方向先用n 1次移動到距離目標更近的一段端點再同步移動。保證小於3 n 1 次 c考慮到答案是乙個數 乙個數 k 那麼我們掃過去的時候記錄一下哪個時候這兩個數的差分最大,通過這個差分調大某乙個數的個數 差分是...

ICPC程式設計題解系列

the 2019 acm icpc china shannxi provincial programming contest題解 海島blog csdn部落格 2019 icpc中國邀請賽 南昌 暨國際絲綢之路程式設計競賽 網路賽題解 海島blog csdn部落格 2018 2019 acm icp...