你有乙個盒子,你可以往裡面放數,也可以從裡面取出數。
初始時,盒子是空的,你會依次做 q 個操作,操作分為兩類:
第一行乙個正整數 q,表示操作個數。
接下來 q 行依次描述每個操作。每行 2 個用空格隔開的非負整數 op,x 描述乙個操作:op 表示操作型別,op=1 則表示這是乙個插入操作,op=2 則表示這是乙個刪除操作;x 的意義與操作型別有關,具體見題目描述。
按順序對所有操作輸出,對於每個操作輸出一行,如果成功則輸出「succeeded」(不含引號),如果失敗則輸出「failed」(不含引號)。
61 100
1 100
2 100
1 200
2 100
2 200
succeeded
failed
succeeded
succeeded
failed
succeeded
對於 60% 的資料,保證 x<10^5。
對於 100% 的資料,保證 x<1018,q≤5*105。
對於所有資料,保證 op∈。
時間限制:10 sec
空間限制:256 mb
#include
#include
using
namespace std;
typedef
long
long ll;
const
int mod =
1000003
;vectortable[mod]
;int
hash
(ll x)
bool
check
(int op,ll x)}if
(op==1)
return0;
//失敗
}else
return0;
}}intmain()
else
}return0;
}
鄧俊輝 演算法訓練營練習 數字盒子
數字盒子 問題描述 你有乙個盒子,你可以往裡面放數,也可以從裡面取出數。初始時,盒子是空的,你會依次做 q 個操作,操作分為兩類 插入操作 詢問盒子中是否存在數 x,如果不存在則把數 x 丟到盒子裡。刪除操作 詢問盒子中是否存在數 x,如果存在則取出 x。對於每個操作,你需要輸出是否成功插入或刪除。...
演算法訓練 數字遊戲
資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 給定乙個1 n的排列a i 每次將相鄰兩個數相加,得到新序列,再對新序列重複這樣的操作,顯然每次得到的序列都比上一次的序列長度少1,最終只剩乙個數字。例如 3 1 2 4 4 3 6 7 916 現在如果知道n和最後得到的數字sum...
試題 演算法訓練 數字遊戲
題目鏈結 問題描述 給定乙個1 n的排列a i 每次將相鄰兩個數相加,得到新序列,再對新序列重複這樣的操作,顯然每次得到的序列都比上一次的序列長度少1,最終只剩乙個數字。例如 3 1 2 4 4 3 6 7 916 現在如果知道n和最後得到的數字sum,請求出最初序列a i 為1 n的乙個排列。若有...