第三輪測試卷一(2020 10 29)

2021-10-10 03:24:38 字數 2055 閱讀 8603

鋪石板,輸入n x m的廣場,和a x a的石板,求最少需要多少石板?

/*

演算法思想:沒啥。。。。

理解向上取整就行

*/num=

((n+a-1)

/a)*

((m+a-1)

/a);

用的0-1揹包

找鋪水管一共有多少種鋪法?

//演算法思想:dfs

#include

#include

int n,m;

char maze[

105]

[105];

int vis[

105]

[105];

int sum=0;

int dx[4]

=;int dy[4]

=;void

dfs(

int x,

int y)

if(x<

0||x>=n||y<

0||y>=m)

return;if

(vis[x]

[y]==1)

return

;for

(int i=

0;i<

4;i++)}

intmain()

}printf

("%d\n"

,sum)

;return0;

}

將n個村莊連線起來(可以是間接連線),求最低成本

/*

演算法思想:建立最小生成樹,用prim或者克魯斯卡爾演算法

自己的問題:不知道如何使用,對於圖的演算法,還有資料結構形式,不是很熟悉

*/int

getroot

(int a,

int set)

intlowcost

(road road)

//本演算法返回最小花費

}/*假設函式sort()已經定義,即對road中的m條道路按照花費進行遞增排序*/

sort

(road,m)

;/*下面這個迴圈從road陣列中逐個挑出應修的道路*/

for(i=

0;ireturn min;

//返回最小花費

}

從陣列l[1…n]中找到第k小數值

/*

演算法思想:在進行快速排序的過程中,每輪遍歷,之後,對於樞軸元素進行判斷

這種思想很新,自己要學會掌握。主要對於題目如果有要求,時間複雜度要盡可能低的時候。

*/int

kth_elem

(int a,

int low,

int high,

int k)

a[low]

=pivot;

//上面即為快速排序中的劃分演算法

//以下就是本演算法思想中所述的內容

if(low==k)

//由於與k相同,直接返回pivot元素

return a[low]

;else

if(low>k)

//在前一部分表中遞迴尋找

return

kth_elem

(a,low_temp,low-

1,k)

;else

//在後部分表中遞迴尋找

return

kth_elem

(a,low,high_temp,k-low)

;}

求二叉樹的高度

/*

演算法思想:

1、遞迴

2、層次遍歷的時候

*///方法一:採用遞迴的手段來做

intheight

(bitree bt)

//求二叉樹bt的深度

}

//方法二:採用層次遍歷來做

intbtdepth

(bitree t)

//採用層次遍歷的非遞迴方法求解二叉樹的高度

}}

GDOI第三輪模擬總結

t1沒有想到乙個性質 插入點的父親是它的前驅和後繼中深度較大的那個。然後感覺十分不可做啊,於是就是打了個模擬spaly,結果有個地方忘記update。t2思路再在一次陷在莫隊中,以為資料會有梯度,就直接上了,一番卡常之後,還是只有暴力分。t3沒有什麼思路,就棄了。t4,30分暴力也需要計算幾何基礎,...

GDSOI2017第三輪模擬4 21 總結

第一題看著就覺得獵奇,於是就想著打暴力就跑。但是很嚴重的問題就是。d 和 b 打反了,都不知道當時在幹什麼?原本可以拿35。第二題看著就覺得套路,於是想著今天就攻這題。但是很嚴重的問題就是。發現了ban的區間是dfs序上的一段後,就開始yy套路,結果居然想著線段樹合併。而且還把決策單調性推錯了。事實...

JSTSC2015第三輪省隊選拔賽 後記

結束了啊.並不知道該寫些什麼才好 最終還是沒進隊.差了5分.10個人.然後thu和pku的初審也沒有過.果然沒進隊沒人權 好在是有d了 省選犯了不知道多少錯誤不過去後悔也沒用了 總之這幾天稍微休息一下吧 兩天的考試第一天t3把檔案注釋掉了。最後發現結果忘記重新打包.不過也就30分 看到第二題的時候我...