題目描述
題目鏈結
超市裡有 n≤10^5 個寄包櫃。每個寄包櫃格仔數量不一,第 i 個寄包櫃有 ai≤10^5 個格仔,不過我們並不知道各個 ai的值。對於每個寄包櫃,格仔編號從 1 開始,一直到 ai。現在有 q≤10^5 次操作:
1 i j k:在第 i 個櫃子的第 j個格仔存入物品0≤k≤10^9。當 k=0時說明清空該格仔。
2 i j:查詢第 i 個櫃子的第 j 個格仔中的物品是什麼,保證查詢的櫃子有存過東西。
已知超市裡共計不會超過 10^7個寄包格仔,ai 是確定然而未知的,但是保證一定不小於該櫃子存物品請求的格仔編號的最大值。當然也有可能某些寄包櫃中乙個格仔都沒有。
輸入格式
第一行 2 個整數 n 和 q,寄包櫃個數和詢問次數。
接下來 q 個整數,表示一次操作。
輸出格式
對於查詢操作時,輸出答案。
輸入輸出樣例
輸入 #1
5 41 3 10000 114514
1 1 1 1
2 3 10000
2 1 1
輸出 #1
1145141題解
這題如果開二維陣列的話k[100005][100005]肯定執行錯誤了。那麼如果用一維陣列的話k[10000005]查詢操作又會超時。
那麼就放棄吧
我們想到可以用動態儲存,vector來存。
寫乙個結構體《櫃子》,包含格仔,數,格仔的個數。
typedef
struct
ss;
櫃子開10的5次方大。
ss c[
100300
];
下面為完整**:
#include
#include
#include
#include
#include
using
namespace std;
typedef
struct
ss;ss c[
100300];
intmain()
else}}
}}
另一種方法:
用map二維對映。
#include
#include
#include
#include
#include
#include
using
namespace std;
map<
int,map<
int,
int>
> p;
intmain()
else
}}
ac P3613 深基15 例2 寄包櫃(map解法)
題目描述 超市裡有 n n 10 5 個寄包櫃。每個寄包櫃格仔數量不一,第 i 個寄包櫃有 ai ai 10 5 個格仔,不過我們並不知道各個 ai的值。對於每個寄包櫃,格仔編號從 1 開始,一直到 ai 現在有 q q 10 5 次操作 1 i j k 在第 ii個櫃子的第 j 個格仔存入物品 k...
洛谷 P3613 深基15 例2 寄包櫃
超市裡有 n n le10 5 個寄包櫃。每個寄包櫃格仔數量不一,第 iii 個寄包櫃有 a i a i le10 5 個格仔,不過我們並不知道各個 a i 的值。對於每個寄包櫃,格仔編號從 1 開始,一直到 a i 現在有 q q le10 5 次操作 已知超市裡共計不會超過 10 7 個寄包格仔...
P5736 深基7 例2 質數篩
include using namespace std long long shai long long a for int i 2 i sqrt a i return 1 跑遍了迴圈沒找到除1和本身之外的數,那就是素數,返回1。int main for int i 1 i n i 0,1標為不是 ...