当前位置: 首页 > news >正文

P10689 学习笔记

省流:又又又又是毒瘤数据结构。

题目传送门

看到操作一我们想到线段树/树状数组,看到操作二我们想到文艺平衡树。

再结合后面的所有操作,这题就是文艺平衡树裸题。

我们需要维护两个 lazy tag,一个翻转标记,一个加法标记即可。

下面给出二十几行的 pushdown

void pushdown(ll u){if (rev[u]) {swap(ls[u], rs[u]);rev[ls[u]] ^= 1;rev[rs[u]] ^= 1;rev[u] = 0;}if (add[u]) {if (ls[u]) {add[ls[u]] += add[u];minn[ls[u]] += add[u];val[ls[u]] += add[u];}if (rs[u]) {add[rs[u]] += add[u];minn[rs[u]] += add[u];val[rs[u]] += add[u];}add[u] = 0;}
}

其他的就是文艺平衡树板子了。

code
#include <bits/stdc++.h>
#define pub public:
#define pri private:
#define fri friend:
#define Ofile(s) freopen(s".in", "r", stdin), freopen (s".out", "w", stdout)
#define Cfile(s) fclose(stdin), fclose(stdout)
#define fast ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
using namespace std;using ll = long long;
using ull = unsigned long long;
using lb = long double;
using pii = pair<int, int>;
using pll = pair<ll, ll>;
using pil = pair<int, ll>;
using pli = pair<ll, int>;constexpr int mod = 998244353;
constexpr int maxn = 2e5 + 5;ll n, q;
ll x, y, z;
ll root, tot;
ll seed = 1;ll val[maxn];
ll priority[maxn];
ll siz[maxn];
ll minn[maxn];
ll ls[maxn];
ll rs[maxn];
ll rev[maxn];
ll add[maxn];string opt;void pushup(ll);
void pushdown(ll);
void split(ll, ll, ll &, ll &);
ll merge(ll, ll);
void ADD(ll, ll, ll);
void REVERSE(ll, ll);
void REVOLVE(ll, ll, ll);
void INSERT(ll, ll);
void DELETE(ll);
ll MIN(ll, ll);int main() {freopen("std.in", "r", stdin);freopen("std.out", "w", stdout);fast;srand(time(0));cin >> n;minn[0] = 1e18;for (int i = 1, u; i <= n; i++){cin >> u;INSERT(i - 1, u);}cin >> q;while (q--){cin >> opt;if (opt == "ADD"){cin >> x >> y >> z;ADD(x, y, z);}else if (opt == "REVERSE"){cin >> x >> y;REVERSE(x, y);}else if (opt == "REVOLVE"){cin >> x >> y >> z;REVOLVE(x, y, z);}else if (opt == "INSERT"){cin >> x >> y;INSERT(x, y);}else if (opt == "DELETE"){cin >> x;DELETE(x);}else {cin >> x >> y;cout << MIN(x, y) << endl;}}return 0;
}void pushup(ll u){siz[u] = siz[ls[u]] + siz[rs[u]] + 1;minn[u] = min(val[u], min(minn[ls[u]], minn[rs[u]]));
}void pushdown(ll u){if (rev[u]) {swap(ls[u], rs[u]);rev[ls[u]] ^= 1;rev[rs[u]] ^= 1;rev[u] = 0;}if (add[u]) {if (ls[u]) {add[ls[u]] += add[u];minn[ls[u]] += add[u];val[ls[u]] += add[u];}if (rs[u]) {add[rs[u]] += add[u];minn[rs[u]] += add[u];val[rs[u]] += add[u];}add[u] = 0;}
}void split(ll u, ll v, ll &rootl, ll &rootr){if (!u){rootl = rootr = 0;return ;}pushdown(u);if (siz[ls[u]] + 1 <= v){rootl = u;split(rs[u], v - siz[ls[u]] - 1, rs[u], rootr);}else {rootr = u;split(ls[u], v, rootl, ls[u]);}pushup(u);
}ll merge(ll rootl, ll rootr){if (!rootl)return rootr;if (!rootr)return rootl;pushdown(rootl);pushdown(rootr);if (priority[rootl] < priority[rootr]){rs[rootl] = merge(rs[rootl], rootr);pushup(rootl);return rootl;}else {ls[rootr] = merge(rootl, ls[rootr]);pushup(rootr);return rootr;}
}void ADD(ll x, ll y, ll z){ll a, b, c;split(root, y, b, c);split(b, x - 1, a, b);add[b] += z;minn[b] += z;val[b] += z;root = merge(merge(a, b), c);
}void REVERSE(ll x, ll y){ll a, b, c;split(root, y, b, c);split(b, x - 1, a, b);rev[b] ^= 1;root = merge(merge(a, b), c);
}void REVOLVE(ll x, ll y, ll z){ll a, b, c, d;split(root, y, c, d);split(c, x - 1, a, c);z %= (y - x + 1);split(c, y - x + 1 - z, b, c);root = merge(merge(merge(a, c), b), d);
}void INSERT(ll x, ll y){++tot;val[tot] = y;priority[tot] = rand();siz[tot] = 1;minn[tot] = y;ll a, b;split(root, x, a, b);root = merge(merge(a, tot), b);
}void DELETE(ll x){ll a, b, c;split(root, x - 1, a, b);split(b, 1, b, c);root = merge(a, c);
}ll MIN(ll x, ll y){ll a, b, c;split(root, y, b, c);split(b, x - 1, a, b);ll ans = minn[b];root = merge(merge(a, b), c);return ans;
}
http://www.jsqmd.com/news/445816/

相关文章:

  • 2026年许昌空中摇篮品牌推荐,空中摇篮价格贵吗 - 工业设备
  • Vue实战:自动化研判报告组件的设计与构建
  • 2026年常州行走减速机油封生产厂推荐,口碑好的有哪些 - 工业品牌热点
  • 2026年2月不锈钢热轧板厂家推荐,这些值得关注!321H 不锈钢冷热轧板材/双相不锈钢管,不锈钢热轧板生产加工推荐 - 品牌推荐师
  • 数据中心空调散热系统生产厂价格多少,哪家品牌更值得选择? - mypinpai
  • 分析2026年氢化丁晴油封厂商排名,哪家值得推荐 - 工业品牌热点
  • 2026年性价比高的快餐配送推荐公司,食全食美多少钱? - myqiye
  • 细聊除尘布袋厂家怎么选,江苏蓝梦环保在全国服务区域广吗? - mypinpai
  • 盒马鲜生卡怎么回收?流程和心得分享 - 团团收购物卡回收
  • 第一章:基础知识
  • 2026年猪饲料制造企业排名 实力强的品牌怎么选 - 工业品网
  • 总结口碑好的出国留学机构,山东三儒国际文化交流排名怎样? - myqiye
  • 文件夹自动同步软件
  • 2026年靠谱的大型球磨机生产厂排名,技术强的有几家? - 工业设备
  • 2026年船用电缆生产厂推荐,广东这些品牌性价比超高 - 工业推荐榜
  • 帝国cms如果栏目的信息数显示不对,如何处理?EmpireCMS
  • 2026年口碑好的附近通下水道品牌排名,值得选购 - 工业品牌热点
  • 字符串字面量
  • 超实用攻略!永辉超市卡使用技巧与回收流程全指南 - 团团收购物卡回收
  • 上海地区,讲讲不错的Alevel培训学校有哪些,哪家性价比高 - 工业推荐榜
  • 聊聊2026年大正原农牧的薪资待遇、成本控制如何及市场份额有多少 - 工业品网
  • 编程专题练习题单1
  • 2026年云南配电箱厂家推荐,靠谱之选别错过,工业电力检测/智能配电箱/电厂控制柜/机床设备配电柜,配电箱制造商找哪家 - 品牌推荐师
  • 2026年企业食堂解决咨询方案费用,哪家收费合理 - 工业设备
  • 帝国cms为什么页面不统计访问数呢?EmpireCMS
  • python模块安装-setup.py
  • 生成内容页提示“Table *.phome_ecms_ doesnt exist......update ***_ecms_ set havehtml=1 where id= limit 1”
  • shape文件解析
  • python-海象操作符
  • 大润发购物卡回收注意事项大合集:避免这些常见误区! - 团团收购物卡回收