題目鏈結
1.碰到一道題幹很複雜的題目,要先弄清楚題目到底在幹什麼,把樣例在紙上模擬出來。
2.思考一般情況,分析題目的考察的知識點(例如本題考查的就是拓撲排序,恰巧我不熟練,看了題解才明白了思路)。
3.設計資料結構,需要記錄下哪些資料,如何儲存、更新資料,如何儲存圖。
在本題中,核心思路就是將結點先進行拓撲排序,在遍歷一遍。
對於乙個結點,應該儲存其出度,入讀(第一次寫出入度),子節點的鍊錶。
在拓撲排序中,最好用陣列實現佇列,y總說過:用陣列實現佇列可以獲取佇列中間的元素。不過top_sort()函式很值得學習。
鄰接表僅僅用於儲存圖,只在遍歷一點的子節點時使用。(應該明確鄰接錶能實現的功能,將鄰接表模組化思考,不要亂用鄰接表!!)
#include
#include
#include
#include
//本來打算直接用queue,後來發現不行
using
namespace std;
const
int n =
105;
int h[n]
,e[n*n]
,w[n*n]
,ne[n*n]
,idx,n,p;
int chu[n]
,yu[n]
;//chu的意思是初始值,yu的意思是閾值。。。
int din[n]
,dout[n]
,q[n]
;//q是佇列
void
add(
int a,
int b,
int w)
void
top_sort()
}while
(hh<=tt)}}
}int
main()
top_sort()
;for
(int i=
0;q[i]!=0
;i++
)//按拓撲序遍歷所有點
}bool had_print=
false
;for
(int i=
1;i<=n;i++)}
if(!had_print)
return0;
}
還是太菜了,刷題量太少,且不說思路一開始沒想出來,很多地方**實現都有問題。
邊學新知識邊刷題吧。
noip2003提高組題解
這一年的前三題雖然難度不高,但是第二題極為繁瑣,想在考場上用較短的時間拿到第二題的分數難上加難。所以必須要調整策略,爭取拿其他三題的分數。第四題是比較普通的搜尋題,分數比較好拿,但是很容易想成樹形dp,就只能拿30 50分。第一題 神經網路 模擬 有幾個注意點 輸入層 即第一層 的結點的u 閾值 是...
NOIP 2003 提高組 複賽 加分二叉樹
noip 2003 提高組 複賽 加分二叉樹 1.樣例1分析是關鍵 輸入 5 5 7 1 2 10 輸出 145 3 1 2 4 5 1 2 3 4 5 中序遍歷 3 1 2 4 5 前序遍歷 分析可得二叉樹如下圖 3 1 4 2 5 3的左子樹計算1 7 5 12 3的右子樹計算1 10 2 12...
NOIP2023年普及組題解
這是第一題 首先,在做題之前要注意兩個地方 e 不一定出現在文字的末尾,也不一定出現在某行的末尾 比賽必須要領先2個球才能獲勝,11 10的比分是不存在的 好了,廢話不多說,直接上 include include include include include using namespace std...