hdu4841 圓桌問題 STL vector

2022-06-21 21:18:08 字數 1693 閱讀 5981

目錄hdu4841

解本題時使用了剛學的stl vector,注意hdu不支援萬能標頭檔案#include,所以要記得使用#include

這裡是c++**。

#include#includeusing namespace std;

int main()

pos = 0;

//刪除壞人

for(i=0;i本題的兩個思考點是:

1.環形桌子,到末尾又回到開頭。使用取模來實現。

2.如何在刪除了壞人元素後保留好人位置的資訊。一開始將位置資訊存入陣列中來實現。

本題的輸出格式也比較苛刻,要注意換行的數量。

每行輸出50個字母:

功能例子

說明定義int型陣列

vectora;

預設初始化,a為空

vectorb(a);

用a定義b

vectora(100);

a有100個值為0的元素

vectora(100,6);

100個值為6的元素

定義string型陣列

vectora(10,"null");

100個值為6的元素

vectorvec(10,"hello");

10個值為hello的元素

vectorb(a.begin().a.end());

b是a的複製

定義結構型陣列

struct point

vectora;

a用來存座標

功能例子

說明賦值

a.push_back(100);

在尾部新增元素

元素個數

int size = a.size();

元素個數

是否為空

bool isempty = a.empty();

判斷是否為空

列印cout列印第乙個元素

中間插入

a.insert(a.begin()+i,k);

在第i個元素前面插入k

尾部插入

a.push_back(8);

尾部插入值為8的元素

尾部插入

a.insert(a.end(),10,5);

尾部插入10個值為5的元素

刪除尾部

a.pop_back();

刪除末尾元素

刪除區間

a.erase(a.begin()+i,a.begin()+j);

刪除區間[i,j-1]的元素

刪除元素

a.erase(a.begin()+2);

刪除第3個元素

調整大小

a.resize(n)

陣列大小變為n

清空a.clear();

翻轉reverse(a.begin(),a.end());

用函式reverse翻轉陣列

排序sort(a.begin(),a.end());

用函式sort排序,從小到大

HDU 4841 圓桌問題

acm模版 這個題簡單的來就是暴力列舉約瑟夫環,當然,太暴力也不好,適當的用資料結構優化一下也是有必要的,這裡用向量維護,成功水過。include include include include include using namespace std const int maxn 4e4 const...

hdu4841 圓桌問題

圓桌上圍坐著2n個人。其中n個人是好人,另外n個人是壞人。如果從第乙個人開始數數,數到第m個人,則立即處死該人 然後從被處死的人之後開始數數,再將數到的第m個人處死 依此方法不斷處死圍坐在圓桌上的人。試問預先應如何安排這些好人與壞人的座位,能使得在處死n個人之後,圓桌上圍坐的剩餘的n個人全是好人。多...

HDU 4841 圓桌問題

圓桌上圍坐著2n個人。其中n個人是好人,另外n個人是壞人。如果從第乙個人開始數數,數到第m個人,則立即處死該人 然後從被處死的人之後開始數數,再將數到的第m個人處死 依此方法不斷處死圍坐在圓桌上的人。試問預先應如何安排這些好人與壞人的座位,能使得在處死n個人之後,圓桌上圍坐的剩餘的n個人全是好人。i...