啦啦啦
又來嘍今天一直在做小生成樹問題。總共刷了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...