9度 王道論壇計算機考研資料結構演算法實戰測試(3)

2021-06-02 13:14:29 字數 1642 閱讀 9531

a. 會員積分排序

和上次比賽一樣,是乙個二級排序問題。按積分從高到低,相同則按id從低到高。

#include #include #include using namespace std;

struct node

}a[1005];

int main()

sort(a, a+n);

n = (n > m?m:n);

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

}return 0;

}

b. ***定律之畫x

題目是乙個分形圖形,是遞迴的典型題目。細心點就可以模擬出來了。另外這個題目在zoj上面有加強版。

#include #include #include using namespace std;

char str[4][4];

int m, n;

char show(int r, int c, int level)//列印圖案

int main()

else

r = c = 1;

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

for(i = 0; i < r; i++)

puts("#");

}return 0;

}

c. 孤島連通工程

首先我們分析下題目,題目要求所有點之間相互可達,那麼圖的最小組成一定是一棵樹。現在我們要求這棵樹上所有路徑和最小,可得,這是一棵最小生成樹。看一下規模,節點數1000,邊數10000,應該是使用kruskal演算法。

#include #include #include #include using namespace std;

struct edgee[10005];

bool vis[1005];

int s[1005];

int pid;

int n, m;

bool cmp(edge a, edge b)

void makeset()//初始化並查集中的集合

return ;}

int find(int x)//並查集中的查詢函式

while(i != x)

return i;}

void union(int fx, int fy) //並查集中的合併函式

if(fx > fy)

else}

void kruskal()

i++;

}//查詢存在多少的集合,當s[i] == i時,表示這是乙個集合

//最小生成樹應當只有乙個集合

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

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

if(i <= n)

puts("no");

else

printf("%d\n", cost);

return ;}

int main()

if(n > m + 1)

sort(e, e + m, cmp);//演算法的本質是貪心,所以按花費排序

kruskal();

}return 0;

}

9度 王道論壇計算機考研資料結構演算法實戰測試(1)

第一次,我先介紹下這個oj吧,這個oj我在某神群內看到別人推廣,所以就看了下。裡面主要是歷年計算機專業的機試題,中文居多。a 考研海報 初看範圍n,m都小於100,所以就直接二維陣列暴力列舉。其實最優的方法應該是二維樹狀陣列統計。偷懶沒去寫 b include include include inc...

2023年王道論壇計算機考研機試全真模擬考試

題目描述 給定任意時刻,求時針和分針的夾角 劣弧所對應的角 輸入 輸入包含多組測試資料,每組測試資料由乙個按hh mm表示的時刻組成。輸出 對於每組測試資料,輸出乙個浮點數,代表時針和分針的夾角 劣弧對應的角 用角度表示,結果保留兩位小數。樣例輸入 03 00 14 45 樣例輸出 90.00 17...

計算機考研之資料結構 線性表

目錄順序表 單鏈表雙鏈表 小結習題 元素為單個的資料元素 元素個數有限 元素資料型別相同 有邏輯上的先後關係 initlist l 構造乙個空的線性表。length l 返回線性表長度。locateelem l,e 根據值查詢元素。getelem l,i 根據索引查詢元素。listinsert l,...