主页
搜索
最近更新
数据统计
赞助我们
系统公告
1
/
1
请查看完所有公告
不要笑挑战SSS难度《最伟大的作品》评分8.8国宴等级,一口下去,小伙惊了
最后更新于 2025-06-15 14:14:37
作者
DengDuck
分类
休闲·娱乐
复制 Markdown
查看原文
更新内容
国宴!来自我校六年级选手!虽然我知道尊重,但真的很好笑 ```cpp #include <bits/stdc++.h> using namespace std; struct node { int ez[2];//儿子 int sjz, sz, zhi;//随机值,size(少有正常的),值 } treap[1000010]; int len/*最新结点的下标*/, n, r11, r22;//分离后的左子树和右子树 void updown(int x) {//上下 if (x) treap[x].sz = treap[treap[x].ez[1]].sz + treap[treap[x].ez[0]].sz + 1; } void fenli/*分离*/(int ww/*蜗蜗*/, int &zg/*左根*/, int &yg/*右根*/, int shu/*数*/) { if (ww == 0) zg = yg = 0; else if (treap[ww].zhi <= shu) zg = ww, fenli(treap[ww].ez[1], treap[zg].ez[1], yg, shu); else yg = ww, fenli(treap[ww].ez[0], zg, treap[yg].ez[0], shu); updown(ww); } void hebing/*合并*/(int &ww, int zg, int yg) { if (zg == 0 || yg == 0) ww = zg + yg; else if (treap[zg].sjz >= treap[yg].sjz) ww = yg, hebing(treap[ww].ez[0], zg, treap[ww].ez[0]); else ww = zg, hebing(treap[ww].ez[1], treap[ww].ez[1], yg); updown(ww); } void internet/*封神段,请反复诵读,体验情感*/(int &r/*根*/, int x) { fenli(r, r11, r22, x); treap[++len].zhi = x; treap[len].sjz = rand(); treap[len].sz = 1; r = len; hebing(r11, r11, len); hebing(r, r11, r22); } void shanc/*删除*/(int &r, int x) { int z = 0; fenli(r, r11, r22, x); fenli(r11, r11, z, x - 1); hebing(z, treap[z].ez[0], treap[z].ez[1]); hebing(r, r11, z); hebing(r, r, r22); } int gettrk/*得到t排名*/(int r, int x) { if (r == 0) return 1; if (x > treap[r].zhi) return 1 + treap[treap[r].ez[0]].sz + gettrk(treap[r].ez[1], x); else return gettrk(treap[r].ez[0], x); } int pm/*排名(pm2.5)*/(int r, int x) { if (treap[treap[r].ez[0]].sz >= x) return pm(treap[r].ez[0], x); else if (treap[treap[r].ez[0]].sz + 1 >= x) return treap[r].zhi; else return pm(treap[r].ez[1], x - treap[treap[r].ez[0]].sz - 1); } int qian/*钱*/(int r, int x) { if (r == 0) return -1000000000; if (treap[r].zhi >= x) return qian(treap[r].ez[0], x); else return max(treap[r].zhi, qian(treap[r].ez[1], x)); } int hou/*猴*/(int r, int x) { if (r == 0) return 1000000000; if (treap[r].zhi <= x) return hou(treap[r].ez[1], x); else return min(treap[r].zhi, hou(treap[r].ez[0], x)); } int main() { srand(time(0)); int ww = 0; scanf("%d", &n); for (int i = 1; i <= n; i++) { int bj/*北京欢迎你*/, x; scanf("%d%d", &bj, &x); if (bj == 1) internet(ww, x); if (bj == 2) shanc(ww, x); if (bj == 3) printf("%d\n", gettrk(ww, x)); if (bj == 4) printf("%d\n", pm(ww, x)); if (bj == 5) printf("%d\n", qian(ww, x)); if (bj == 6) printf("%d\n", hou(ww, x)); } return 0; } ``` > 变量不规范,同学笑出两行泪
正在渲染内容...
点赞
2
收藏
0