暢通工程系列相關題型

2022-02-16 06:48:56 字數 2915 閱讀 4493

上週花了一周多的時間看了最小生成樹,最短路,並查集這一塊內容,這是上週新學的知識點,時間拉的確實有點長,尤其是1875那一題卡了很久,用兩種方法寫比較混亂,雖然也是花了一周多的時間,但是也只會寫寫這些模板題,而且對於這些容易把**摻雜在一起寫,思路邏輯不清,這一點需要自己多去找找原因,理清思路。

ac**:

#include#include#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

struct edge

e[110];

int n,m;

int f[110]=;

int cmp1(edge x,edge y)

// }

// }//單源

for(k=0; ke[i][k]+e[k][j])

e[i][j]=e[i][k]+e[k][j];}}

}// int ans=0;

// for(i=0; iac**:

#include#include#include#include#includeusing namespace std;

int f[1010],n,m;

void init()

int getf(int x)

void merge(int x,int y)

int main()

int ans=0;

for(i=1;i<=m;i++)

printf("%d\n",ans-1);

}return 0;

}

ac**:

#include#include#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

int f[10030]=,i,n;//這裡陣列開小了會出現tle

struct e

e[10030];

void init()

int getf(int x)

int merge(int x,int y)

return 0;

}int cmp1(e x,e y)

int main()

}for(i=1; i<=n; i++)}}

for(i=1; i<=n; i++)

for(i=1; i<=n; i++)

book[1]=1;

int flag=0;

for(i=1; ie[u][k])

dis[k]=e[u][k];// dis[k]=dis[u]+e[u][k];這裡的錯誤注意一下}}

//// for(i=1; i<=n; i++)

//

// }

// if(flag==1)

//

if(flag==0)

printf("%.1lf\n",sum*100);}}

}

並查集+最小生成樹寫的ac**:

//並查集+最小生成樹

#include#include#include#include#define inf 0x3f3f3f3f

using namespace std;

int dis[110],e[110][110];

int a[110],b[110],f[110]= ,n;

double ss(int i,int j)

void init()

return ;

}int getf(int x)

int merge (int x,int y)

return 0;

}struct node

dd[110100];

int cmp1(node x,node y)}}

sort(dd,dd+k,cmp1);

double sum=0;

int countt=0;

for(i=0; i<=k-1; i++)

if(countt==n-1)

break;

}if(countt==n-1)

printf("%.1lf\n",sum*100);

else

printf("oh!\n");}}

}

ac**:

#include#include#include#include#includeusing namespace std;

#define inf 0x3f3f3f3f

int m,n,f[110];

struct e

e[5000];

void init()

}int getf(int x)

int merge(int x,int y)

return 0;

}int cmp1(e x,e y)

int main()

}sort(e+1,e+n*(n-1)/2+1,cmp1);

for(i=1;i<=n*(n-1)/2;i++)

}int ans=0,countt=0;

for(i=1;i<=n;i++)

if(ans==1)

int sum=0;

for(i=1;i<=n*(n-1)/2;i++)

//這題資料有點水,應該再合併一次,但這題也過了

if(countt==ans-1)

break;

}printf("%d\n",sum);

}return 0;

}

暢通工程系列

對於這題,現在還是有點蒙。不過第二題把條件轉換成 若道路已修建,則費用為0 剩下的就是查詢最小生成樹的問題 瞬間思路就清晰了。感覺還是最小生成樹沒有掌握好。如下 include include using namespace std int pre 105 int cost 105 struct n...

軟體工程系列 詳細設計

目錄 詳細設計階段是邏輯上將系統的每個功能都設計出來,並保證設計出的處理過程應該盡可能的簡明易懂。結構化程式設計 定義 如果乙個程式的 塊僅僅通過順序 選擇和迴圈這3種基本控制進行連線,並且只有乙個入口和乙個出口,則稱這 個程式是結構化的。結構化程式設計的3種基本結構 順序 選擇 迴圈。程式流程圖 ...

工程系列 利用VSCode進行C 開發

vscode 跨平台,輕量,外掛程式多。能夠在windows上編譯的內容直接遷往linux,反之依然。所以淺了解了下 以下內容均為單源文字編譯,debug,撰寫等。1,外掛程式安裝 cpptools,code runner,include autocomplete 2,基本功能 2.1 最開始一步,...