u117 佇列安排

2021-09-29 01:29:47 字數 2249 閱讀 4757

time limit: 1 second

memory limit: 128 mb

【問題描述】

乙個學校裡老師要將班上n個同學排成一列,同學被編號為1~n,他採取如下的方法:

1. 先將1號同學安排進佇列,這時佇列中只有他乙個人;

2. 2~n號同學依次入列,編號為i的同學入列方式為:老師指定編號為i的同學站在編號為1~i -1中某位同學(即之前已經入列的同學)

的左邊或右邊;

3. 從佇列中去掉m(其中m小於n)個同學,其他同學位置順序不變。

在所有同學按照上述方法佇列排列完畢後,老師想知道從左到右所有同學的編號。

【輸入格式】

輸入檔案arrange.in的第1行為乙個正整數n,表示了有n個同學。

第2~第n行,第i行包含兩個整數k,p,其中k為小於i的正整數,p為0或者1。若p為0,則表示將i號同學插入到k號同學的左邊,p為1則表示插入

到右邊。

第n+1行為乙個正整數m,表示去掉的同學數目。

接下來m行,每行乙個正整數x,表示將x號同學從佇列中移去,如果x號同學已經不在佇列中則忽略這一條指令。

【輸出格式】

輸入檔案arrange.out僅包括1行,包含最多n個空格隔開的正整數,表示了佇列從左到右所有同學的編號,行末換行且無空格。

【資料規模】

對於20%的資料,有n≤10; 對於40%的資料,有n≤1000; 對於100%的資料,有n, m≤100000。

sample input1

4 1 0

2 1

1 0

2 3

3sample output1

2 4 1

【樣例解釋】

將同學2插入至同學1左邊,此時隊列為: 2 1 將同學3插入至同學2右邊,此時隊列為: 2 3 1 將同學4插入至同學1左邊,此時隊列為: 2 3 4 1 將同學3從佇列中移出,此時隊列為: 2 4 1 同學3已經不在佇列中,忽略最後一條指令 最終佇列: 2 4 1

【題目鏈結】:

【題解】

用個陣列模擬下鍊錶就好;

把第乙個同學的左邊和右邊都設定為0;

最後輸出答案的時候從0的右邊開始輸出就可以了;

【完整**】

#include 

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define lson l,m,rt<<1

#define rson m+1,r,rt<<1|1

#define ll long long

#define rep1(i,a,b) for (int i = a;i <= b;i++)

#define rep2(i,a,b) for (int i = a;i >= b;i--)

#define mp make_pair

#define pb push_back

#define fi first

#define se second

typedef pair pii;

typedef pairpll;

void rel(ll &r)

void rei(int &r)

const

int maxn = 1e5+100;

const

int dx[9] = ;

const

int dy[9] = ;

const

double pi = acos(-1.0);

struct abc

;abc a[maxn];

int n;

bool bo[maxn];

int main()

else

}int m;

rei(m);

rep1(i,1,m)

}int now = 0;

vector

ans;

while (a[now].r!=0)

int len = ans.size();

rep1(i,0,len-1)

return

0;}

Luogu P1160 佇列安排

其實鍊錶很早就學過了,但我當時的寫法侷限於陣列模擬,沒有考慮過指標實現 好吧其實當時也就不知道指標這個玩意 但今天突然有人在qq上問我 為什麼用指標實現的鍊錶居然會超時 luogu p1160 佇列安排 然而這個題用陣列模擬就可以過了。於是我copy了一下她的源 hljs haskell inclu...

P1160 佇列安排

乙個學校裡老師要將班上n個同學排成一列,同學被編號為1 n,他採取如下的方法 先將1 11號同學安排進佇列,這時佇列中只有他乙個人 2 n 2 n2 n號同學依次入列,編號為i的同學入列方式為 老師指定編號為i的同學站在編號為1 i 1 1 sim i 1 1 i 1 中某位同學 即之前已經入列的同...

P1160 佇列安排

p1160 佇列安排 昨天下午看了一下,感覺肯定要用vector或者佇列,想著自己用的不怎麼好,就沒寫,然後晚上睡不著的時候想到了這題,突然就想到解題辦法了,要不是太晚了我就起床寫了,今天寫了一遍就ac了,哈哈哈 這題比較好玩吧。定義乙個二維陣列,每個數的左右兩個數分別用第二維的陣列0和1存,進行操...