CCF 201703 2 學生排隊

2022-10-10 14:33:16 字數 2899 閱讀 6247

參考

上面的文章寫了四種方法,十分佩服大佬這種思維程度。

關鍵點索引,stl,list(雙向鍊錶),vector(容器)

有點看不懂上面文章裡的方法二,知道個大概但是總是感覺有點懵,果斷通過方式一自己寫了乙個帶索引的解決方式。

#includeusing

namespace

std;

int pos2sno[1005]; //

位置上的學號

int sno2pos[1005]; //

學號所在位置

intmain()

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

pos2sno[pos+q] =p;

sno2pos[p] = pos+q;

} else

pos2sno[pos+q] =p;

sno2pos[p] = pos+q;}}

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

}

然後學習了一下list和vector的用法和區別

需要記住的是list不能隨意訪問,只能從頭或尾順序訪問。但是vector可以。

迭代器的英文:iterator

list 容器可用的成員函式

成員函式

功能begin()

返回指向容器中第乙個元素的雙向迭代器。

end()

返回指向容器中最後乙個元素所在位置的下乙個位置的雙向迭代器。

rbegin()

返回指向最後乙個元素的反向雙向迭代器。

rend()

返回指向第乙個元素所在位置前乙個位置的反向雙向迭代器。

cbegin()

和 begin() 功能相同,只不過在其基礎上,增加了 const 屬性,不能用於修改元素。

cend()

和 end() 功能相同,只不過在其基礎上,增加了 const 屬性,不能用於修改元素。

crbegin()

和 rbegin() 功能相同,只不過在其基礎上,增加了 const 屬性,不能用於修改元素。

crend()

和 rend() 功能相同,只不過在其基礎上,增加了 const 屬性,不能用於修改元素。

empty()

判斷容器中是否有元素,若無元素,則返回 true;反之,返回 false。

size()

返回當前容器實際包含的元素個數。

max_size()

返回容器所能包含元素個數的最大值。這通常是乙個很大的值,一般是 232-1,所以我們很少會用到這個函式。

front()

返回第乙個元素的引用。

back()

返回最後乙個元素的引用。

assign()

用新元素替換容器中原有內容。

emplace_front()

在容器頭部生成乙個元素。該函式和 push_front() 的功能相同,但效率更高。

push_front()

在容器頭部插入乙個元素。

pop_front()

刪除容器頭部的乙個元素。

emplace_back()

在容器尾部直接生成乙個元素。該函式和 push_back() 的功能相同,但效率更高。

push_back()

在容器尾部插入乙個元素。

pop_back()

刪除容器尾部的乙個元素。

emplace()

在容器中的指定位置插入元素。該函式和 insert() 功能相同,但效率更高。

insert()

在容器中的指定位置插入元素。

erase()

刪除容器中乙個或某區域內的元素。

swap()

交換兩個容器中的元素,必須保證這兩個容器中儲存的元素型別是相同的。

resize()

調整容器的大小。

clear()

刪除容器儲存的所有元素。

splice()

將乙個 list 容器中的元素插入到另乙個容器的指定位置。

remove(val)

刪除容器中所有等於 val 的元素。

remove_if()

刪除容器中滿足條件的元素。

unique()

刪除容器中相鄰的重複元素,只保留乙個。

merge()

合併兩個事先已排好序的 list 容器,並且合併之後的 list 容器依然是有序的。

sort()

通過更改容器中元素的位置,將它們進行排序。

reverse()

反轉容器中元素的順序。

CCF 201703 2 學生排隊

問題描述 試題編號 201703 2 試題名稱 學生排隊 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 體育老師小明要將自己班上的學生按順序排隊。他首先讓學生按學號從小到大的順序排成一排,學號小的排在前面,然後進行多次調整。一次調整小明可能讓一位同學出隊,向前或者向後移動一段距...

CCF201703 2 學生排隊

問題描述 體育老師小明要將自己班上的學生按順序排隊。他首先讓學生按學號從小到大的順序排成一排,學號小的排在前面,然後進行多次調整。一次調整小明可能讓一位同學出隊,向前或者向後移動一段距離後再插入佇列。例如,下面給出了一組移動的例子,例子中學生的人數為8人。0 初始佇列中學生的學號依次為1,2,3,4...

CCF 201703 2 學生排隊

問題描述 體育老師小明要將自己班上的學生按順序排隊。他首先讓學生按學號從小到大的順序排成一排,學號小的排在前面,然後進行多次調整。一次調整小明可能讓一位同學出隊,向前或者向後移動一段距離後再插入佇列。例如,下面給出了一組移動的例子,例子中學生的人數為8人。0 初始佇列中學生的學號依次為1,2,3,4...