/*數字盒子
問題描述
你有乙個盒子,你可以往裡面放數,也可以從裡面取出數。
初始時,盒子是空的,你會依次做 q 個操作,操作分為兩類:
插入操作:詢問盒子中是否存在數 x,如果不存在則把數 x 丟到盒子裡。
刪除操作:詢問盒子中是否存在數 x,如果存在則取出 x。
對於每個操作,你需要輸出是否成功插入或刪除。
輸入
第一行乙個正整數 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*/
#include using namespace std;
/*將long long定義為ll 方便書寫*/
typedef long long ll;
const int mod = 1000003;//取模的大小微 1000003
vectortable[mod];//記錄數字取模後的位置
/*返回x取模mod的值*/
int hash(ll x)
//函式判斷插入 或 刪除是否成功
bool operate(int op,ll x)
/*插入操作*/
鄧俊輝演算法訓練營習題 最小交換
最小交換 時間限制 1 sec 空間限制 256 mb 問題描述 給定乙個 1 到 n 的排列 即乙個序列,其中 1,n 之間的正整數每個都出現了恰好 1 次 你可以花 1 元錢交換兩個相鄰的數。現在,你希望把它們公升序排序。求你完成這個目標最少需要花費多少元錢。輸入格式 第一行乙個整數 n,表示排...
鄧俊輝 演算法訓練營練習 二叉排序樹
先序遍歷 輸出自己 左子樹 右子樹 中序遍歷 輸出左子樹 自己 右子樹 include using namespace std struct node t 10000 root代表根節點 cnt代表二叉樹大小 int root,cnt 建樹 int insert int v,int x t x lc...
鄧俊輝演算法訓練營習題 樓爾邦德(二分)
樓爾邦德 時間限制 2 sec 空間限制 256 mb 問題描述 給定包含 n 個數的序列 a。再給出 q 個詢問,每個詢問包含乙個數 x,詢問的是序列 a 中不小於 x 的最小整數是多少 無解輸出 1 輸入格式 第一行乙個數 n,表示序列長度。第二行 n 個用空格隔開的正整數,描述序列中的每乙個元...