山科大校賽C題

2021-07-31 03:08:34 字數 1179 閱讀 3661

時間限制: 1 sec  

記憶體限制: 128 m

瑞神要準備考研了,為了複習資料結構,瑞神在某寶上買了一本資料結構得考研輔導資料《考研資料結構---從入門到放棄》,從此瑞神開始了愉快的復(zhuang)習(bi)。

有一天,瑞神找了好多條鍊錶來輔助自己複習,但是他在複習的過程中一不小心把鍊錶掉在了地上,撿起來的時候鍊錶以及斷成了好多個結點,每個結點只保留了當前結點的位址、結點的值和下乙個結點的位址。瑞神看著這些結點渾身難受無法複習,為了讓瑞神繼續復(zhuang)習(bi)下去,請你幫瑞神把鍊錶復原。

第一行給出結點的個數n(1<=n<=100000)。

位址為5位數字,-1表示位址為null。

每一行輸出一條鍊錶,只輸出每個節點的值。

多條鍊錶按照首結點位址從小到大排序。

3
00323  155 -1
00322  87  00323
00233  1  -1

1

87  155

題目比較坑,可能水平太低,之前想的結構體儲存太智障,後來和隊友討論的三陣列分別儲存,思路是正確的,結果存在bug,鬱悶了好久,結果錯在了標記上。。。。

解題思路:

因為位址是5位的,所以可以直接從頭遍歷;

<1>  建立 ru 陣列儲存哪個是起始點,起始點的入度為零;

<2>  建立used陣列儲存這個位址是否使用過,為後續的遍歷提供方便。

<4>  建立value陣列儲存當前位址儲存的數值。

上**:

#include#includeusing namespace std;

int next[100010];

int used[100010];

int ru[100010];

int value[100010];

int main()

{ memset(next,-1, sizeof(next));

memset(used, 0, sizeof(used));

memset(ru,0,sizeof(ru));

memset(value,-1,sizeof(value));

int a,b,c;

int n;

scanf("%d",&n);

for(int i=0;i

湖科大校賽第三題

小兔位於x軸的x點,欲跳至x軸的y點。x,y均為整數。小兔每次沿x軸直線跳躍,每跳的長度均為正整數,假設 小兔一共跳了n次才到目的地,每次跳的長度為f1,f2,fn.有規則如下 f1 fn 1 fi fi 1 1 2 i n 注 是絕對值符號 我們的問題是給定x,y,如何使得n最小。包含多組資料,但...

湖科大校賽第三題

小兔位於x軸的x點,欲跳至x軸的y點。x,y均為整數。小兔每次沿x軸直線跳躍,每跳的長度均為正整數,假設 小兔一共跳了n次才到目的地,每次跳的長度為f1,f2,fn.有規則如下 f1 fn 1 fi fi 1 1 2 i n 注 是絕對值符號 我們的問題是給定x,y,如何使得n最小。包含多組資料,但...

武大校賽E題

題意是給定一副無向圖,然後求走了t步之內,從起點到終點有多少走法,有個地方題面沒有說清楚,就是走到點n之後不能再往別的點走了 鄰接矩陣,乘t次之後,map i j 就是從i點走到j點的且走t步時的走法。我們把矩陣中n到其他點的路徑去掉,所以我們要算的就是 map 1 n i 1 i t 就是答案了 ...