2023年中南大學選拔賽之小M的行動硬碟

2021-08-22 15:05:56 字數 1655 閱讀 1209

title:

最近小m買了乙個行動硬碟來儲存自己電腦裡不常用的檔案。但是他把這些檔案一股腦丟進行動硬碟後,覺得這些檔案似乎沒有被很好地歸類,這樣以後找起來豈不是會非常麻煩?

小m最終決定要把這些檔案好好歸類,把同一類地移動到一起。所以現在小m有了這幾種操作:

1 u 表示把編號為u的檔案放到最上面

2 u 表示把編號為u的檔案放到最下面

3 u v 表示把編號為u的檔案放到編號為v的檔案的後面

已知在最開始的時候,1號檔案到n號檔案從上往下排布

現在小m已經給出了他所進行的所有操作,你能告訴他操作之後的序列是會變成什麼樣子嗎?

input

第一行為乙個數字t(t<=10)表示資料組數

第二行為兩個數字n、m(1<=n,m<=300000)表示序列長度和小m的操作次數

接下來m行每行兩個或三個數字,具體含義見題面

保證資料合法

output

輸出一行表示小m操作結束後的序列

sample input

1

10 5

1 52 3

2 63 4 8

3 1 3

sample output

5 2 7 8 4 9 10 3 1 6
思路:

鍊錶或者陣列模擬一下,(採用的是雙向指標標記解決)。

**如下:

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

int n,m;

int type,k;

int left[300005],right[300005];

int u,v;

void chushihua()

right[0] = 1;

}void print()

printf("\n");

}void updata(int x,int y)

int main()

else if(type == 2)

else

}print();

}return 0;

}

附超時的單項鍊表模擬**:

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

int n,m;

int type,k;

struct node

*ans,*start;

int u,v;

void chushihua()

}void change(int sign,int data)

else

}else

}void updata(int u,int v)

void print()

printf("\n");

}void free()

}int main()

else

}ans = start;

print();

}return 0;

}

2023年中南地區邀請賽 有感

第一次參加規模較大的比賽,準備不是很充分,到開賽前2個小時才知道要用英語,後來看到題目發現全是英語,gg,幸好我們準備了英語詞典,不過翻譯還是花費了我們一定的時間,很痛苦。英語有關計算機的詞彙得多多掌握,不然讀不懂題目就尷尬了。這次比賽出了2個題目,我們的知識水平實在有限,平時所練習的基本沒有用到,...

2023年中南大學機試題b題

題目鏈結 2019年中南大學機試題全部講解 pipi現有a z 26個小球模擬出入棧操作,小球按照a z的順序壓入棧,在棧頂的元素可以隨時被取出,在遊戲開始前給出任意26個字母的一些排列,問是否能夠由出棧順序得到這個排列。輸入包含多組測試用例。每組測試用例包含26個字母組成的乙個序列。若出棧順序合法...

2515 2023年中山市選拔賽 投票

有n個候選人要競選主席,有m個人要投票。每個人只能投一票,如果某個人投了超過一票或者不投票,那麼這個人的投票將視為非法。給出m個人的投票情況,你的任務是統計投票情況,然後按照獲得投票數從高到低將候選人排序,如果獲得的投票數相同,則按照候選人的輸入順序從小到大排序。模擬,然後排序 四捨五入 trunc...