sdut oj 4205 尋找關鍵點

2021-10-09 19:41:17 字數 1663 閱讀 3541

description

現定義關鍵點為一條鏈中處於中間位置的節點,例如 1 3 4中,3就是這個整數鏈中的關鍵點。

現在小玉得到了乙個整數鏈,確保鏈中的各個數都互不相同且數列中數的個數為奇數。

可是,由於小玉的一些特殊要求,她可能會對這個鏈進行一些特別的操作。

操作 1 :給定兩個數a和b,每次刪除鏈中值為a和值為b兩個節點。

操作 2 :給定兩個數a和b,每次在鏈中值為1的節點後插入a,在鏈中值為2的節點後插入b。

由於小玉特殊的要求,她保證鏈中肯定會有值為1和2的節點,並且這兩個節點永遠不會被刪除。保證在插入操作之後鏈中始終不會有重複值的節點。

現在請你寫出乙個程式,幫助小玉找出鏈中的關鍵點。

input

只有一組資料

先輸入乙個整數n(10<=n<=100000),且保證n一定為奇數

接下來輸入n個互不相同的整數num(1<=num<=10000000)

接著下一行輸入乙個整數m(1<=m<=4000)

代表接下來有m行

每行有3個數aa,bb,cc. 其中第乙個數aa表示操作型別,aa為1代表刪除鏈中值為bb和cc的數,

aa為2代表在鏈中值為1的節點後增加值為bb的節點,在鏈中值為2的節點後增加值為cc的節點。

(保證刪除的節點在鏈中一定有,保證插入的節點與鏈中已有節點不會重複)

output

對於每次操作,輸出乙個值h,代表操作完成後鏈中的關鍵點。

sample

input

51 3 4 5 2

21 3 4

2 3 4

output55

#include

using

namespace std;

int n;

typedef

struct node

list;

list *

creat

(int n)

return head;

}void

list_one

(list *head,

int a,

int b)

else

if(q-

>data == b)

else

//沒有相匹配的,往下移動}if

(q->next ==

null

)//進行特判,判斷是否要刪除的結點位於表尾

else

if(q-

>data == b)}}

void

list_two

(list *head,

int a,

int b)

if(p-

>data ==2)

p = p-

>next;}}

intfindkey

(list *head,

int n)

//基操,不多解釋

return p-

>data;

}int

main()

else

key =

findkey

(head, n)

;printf

("%d\n"

, key);}

return0;

}

尋找關鍵點

尋找關鍵點 problem description 現定義關鍵點為一條鏈中處於中間位置的節點,例如 1 3 4中,3就是這個整數鏈中的關鍵點。現在小玉得到了乙個整數鏈,確保鏈中的各個數都互不相同且數列中數的個數為奇數。可是,由於小玉的一些特殊要求,她可能會對這個鏈進行一些特別的操作。操作 1 給定兩...

尋找關鍵點

現定義關鍵點為一條鏈中處於中間位置的節點,例如 1 3 4中,3就是這個整數鏈中的關鍵點。現在小玉得到了乙個整數鏈,確保鏈中的各個數都互不相同且數列中數的個數為奇數。可是,由於小玉的一些特殊要求,她可能會對這個鏈進行一些特別的操作。由於小玉特殊的要求,她保證鏈中肯定會有值為1和2的節點,並且這兩個節...

亞馬遜小白如何尋找關鍵詞?

一 利用亞馬遜自身平台 利用位置 1 競爭對手的產品頁面 看 b 看產品描述,競爭對手如何描述自己產品的特點,用了哪些詞。c 評價,q a,這裡是真實使用者的反饋之處,尤其是對於進入國外市場的我們來說,如果不了解當地的文化,不了解當地的市場要想做好還是不容易的,通過這些評價,問答,看看消費者關心的點...