開學兩周了,一切漸漸重回正軌,電氣專業的四大天書之二的模電和電機也漸漸聽不懂了……
放假前的目標只能說是初步達到,對基本的貪心和動態規劃有了了解。
最近又雜七雜八的學了些知識,回顧了一些學過的演算法,記錄如下:
求次小生成樹的兩種解法
**:1:用求最小生成樹的方法,求出最小生成樹,並記錄下該最小生成樹上的所有邊!
對該生成樹上的所有邊都進行列舉。對邊集中,除了生成樹上某條邊的集合,構造最小生成樹,並記錄下最小值!
當生成樹上的邊列舉完,得到的值的大小就是次小生成樹的大小!
2:首先求出原圖最小生成樹,權值之和為min
列舉新增每條不在最小生成樹上的邊 ,加上以後一定會形成乙個環。
找到環上除了(u,v)以外的權值最大的邊,把它刪掉,計算當前生成樹的權值之和。
列舉完所有邊之後,得到的最小值即為次小生成樹的權值。
具體實現時,更簡單的方法是從每個節點i遍歷整個最小生成樹
定義f[i][j]為在生成樹上,從i到j的路徑上最大的邊的權值。通過bfs,求出f[i][j]的值
然後對於新增每條不在最小生成樹中的邊(i,j),並刪去該環中的原生成樹的的最大邊。
新的生成樹權值之和就是min + w(i,j) – f[i][j]
記錄其最小值,則為次小生成樹。
next_permutation
stl中的這個全排列庫函式十分強大,導致poj1833直接成了水題……我的**如下:
#include #include using namespace std;
int data[1030];
int main ()
{ int t;
scanf("%d",&t);
while (t--)
{ int n,k,i;
scanf("%d%d",&n,&k);
for (i=0;i
130106 階段總結
2013年的第一篇博文。為期一周的期末考修羅場終於結束了,終於活著回到acm的戰場了,目測沒有掛科的風險 接下來又是兩周的金工實習,這不科學!回顧前幾周的學習進度 計算幾何部分還有 pick定理 三角剖分 三維凸包 座標變換 沒看。poj貌似還有不少計算幾何的神題,目前水平不足,留待以後學習。準備利...
2011 07 31 階段性總結
這個blog好久沒有上來看了,看到原來寫的一些文章,發現現在的 風格完全變了個樣兒,大半年沒有寫博文了,主要還是比較忙的原因,現在發現對於一些題目的理解,不能只侷限於對某一題的做法的理解,要把相似問題轉化為模型,這樣我們才能在比賽中獲得比較好的成績。這半年可以說自己的 風格完全變了,我覺得 要有可讀...
day16 階段總結
課程概要 在之前的課程中,我們學過global關鍵字。name root def outer name 小明 def inner global name name 123 inner print name outer print name 其實,還有乙個nolocal關鍵字,用的比較少,此處作為了解...