hdu 1387 Team Queue (鍊錶)

2021-06-22 11:43:14 字數 783 閱讀 1151

題目大意:

不同的人在不同的隊伍裡,插入鍊錶的時候如果這個煉表裡有他的隊友,就把它放到最後乙個隊友的最後,如果沒有隊友,就把它放到整個鍊錶的最後面。

出鍊錶的時候把第乙個人拿出來。

思路分析:

要模擬這個鍊錶就要記錄這整個鍊錶中的隊伍存在的情況。

所以要再開乙個鍊錶的頭指標和尾指標,在整個大的鍊錶中再模擬小區域的鍊錶。

然後就是deque部分,也就是注意head的判斷以及更新。

#include #include #include #include #include #include #define maxn 222222

using namespace std;

struct node

list[maxn];

int head[1111];

int tail[1111];

int vis[1111111];

int quenext[1111111];

int listhead;

int listtail;

void print()

puts("");

}int main()

{ int n;

int case=1;

while(scanf("%d",&n)!=eof && n)

{memset(vis,0,sizeof vis);

for(int i=1;i<=n;i++)

{int t;

scanf("%d",&t);

for(int j=0;j

HDU 1387(又是一天一題系列)

看了好久好久的題目,沒看懂,終於靈光一現,題目意思是有t個隊伍,誰和誰是乙個隊的先告訴你,現在有乙個新佇列,如果執行 enqueue x 的操作,這個佇列裡面已經有這個小隊的成員在裡面,就直接插到小隊的末尾,如果沒有,那就排在這個佇列的最後乙個,所以第乙個插入操作一定是第二種情況,即佇列裡面沒有你的...

1387 素數(函式專題)

題目描述 輸入兩個正整數m和n,輸出m和n之間的所有素數。要求程式定義乙個prime 函式和乙個main 函式,prime 函式判斷乙個整數n是否是素數,其餘功能在main 函式中實現。int prime int n 輸入輸入兩個正整數m和n,m n,且都在int範圍內。輸出輸出佔一行。輸出m和n之...

1387 搭配購買 buy

題目描述 joe覺得雲朵很美,決定去山上的商店買一些雲朵。商店裡有n朵雲,雲朵被編號為1,2,n,並且每朵雲都有乙個價值。但是商店老闆跟他說,一些雲朵要搭配來買才好,所以買一朵雲則與這朵雲有搭配的雲都要買。但是joe的錢有限,所以他希望買的價值越多越好。輸入 第1行n,m,w,表示n朵雲,m個搭配,...