Code 2 火鍋盛宴

2022-05-08 04:42:09 字數 1938 閱讀 8065

話說因為這道題當天下午去吃了火鍋,結果一身味。。。

明明只打了 \(8pts\) 卻意外收穫 \(15pts\)!

竟然會用 \(set\) 了 \(qwq\)。

#include #include #include using namespace std;

const int n = 1e5 + 5, q = 5e5 + 5;

int n, q, a[n], tot[n], sum[n << 2];

set s;

set :: iterator it;

int read()

return x * f;

}int query(const int o, const int l, const int r, const int l, const int r)

void pushup(const int o)

void update(const int o, const int l, const int r, const int p, const int k)

int mid = l + r >> 1;

update(o << 1, l, mid, p, k); update(o << 1 | 1, mid + 1, r, p, k);

pushup(o);

}int main()

else if(op == 1)

}else if(op == 2)

else puts("yjqqqaq is angry.");

}else }}

return 0;

}

其實這道題的方法有很多,比如我旁邊的那位用了線段樹+優先佇列,某谷上只有 \(30pts\),不過在 \(usoj\) 上能過就行了。

我是用的樹狀陣列+模擬鍊錶。(太棒了學到許多)

用鍊錶來維護每種食物下鍋情況。定義 \(head[i]\) 為第 \(i\) 種食物的表頭,\(tail[i]\) 為表尾。\(nxt\) 陣列用來表示連線關係。

用樹狀陣列來維護每種食物可以出鍋的個數。

另外這裡的 \(upper\) 是樹狀陣列中第乙個大於某個值的的下標。(另外這裡不會證明,有什麼大佬可以證一下嗎)

#include #include #include using namespace std;

const int n = 1e5 + 5, q = 5e5 + 5;

int n, q, s[n], t[q], op[q], a[q], b[q], id[q], cnt, head[n], nxt[q], tail[n], data[q], tot;

struct bit

int lowbit(const int x)

void update(int x, const int k)

int query(int x)

int upper(const int lim)

} bit;

int read()

return x * f;

}bool cmp(const int x, const int y)

void add(const int x, const int k)

void insert(const int x)

int main()

sort(id + 1, id + cnt + 1, cmp);

int p = 1;

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

else if(op[i] == 2)

else printf("%d\n", bit.query(b[i]) - bit.query(a[i] - 1));}}

return 0;

}

code 12月月賽 火鍋盛宴

時間限制 2.0 秒 空間限制 512 mb skydec和yjqqqaq都是yazid的好朋友。他們都非常喜歡吃火鍋。有一天,他們聚在一起,享受一場火鍋盛宴。在這場火鍋盛宴中,有乙個麻辣濃湯鍋底的火鍋和n 種食物,每種食物數量都是無限的。我們用1 至n將這些食材編號。每種食物煮熟所需要的時間不同,...

Code 4 組合數問題2

展開 題目描述 眾所周知,小蔥同學擅長計算,尤其擅長計算組合數,所以小蔥給了你兩個數 nn 和 kk,希望你找到 kk 個不同的組合數使得這 kk 個組合數的和最大。所謂不同的組合數,即對於組合數 c ca1 b1 和 c ca2 b2 若 a 1 neq a 2a1 a2 或者 b 1 neq b...

Code 4 組合數問題2

luogu4370 一開始入隊的數字肯定是 c n 然後將它上下左右能入堆的入堆,取出堆首元素後以此類推 要注意同乙個組合數不能重複進堆,所以需要判重,但是如果根據當前擴充套件的元素是否在答案序列中來判斷是否應該進堆,比如這樣 void bfs int n,int k dy 4 q.push com...