[APIO2018] New Home 新家 [线段树,multiset]

2021-03-17 23:27

阅读:447

标签:位置   find   name   freopen   oid   opera   uil   type   cpp   

线段树的每个点表示当前点的前驱,即这个颜色上一次出现的位置,这个玩意multiset随便写写就完了。
重要的是怎么查询答案,无解显然先判掉。
线段树上二分就可以了

#include 

using namespace std;
int read() {
  int x = 0;
  char c = getchar();
  while (c  47) x = x * 10 + (c - 48), c = getchar();
  return x;
}

int min(int x, int y) { return x  y ? x : y; }

int n, k, q;
const int maxn = 3e5 + 53;
const int maxm = 1e7;

multiset st[maxn];
int ans[maxn];

struct node {
  int x, t, id, type;
  bool operator ms[maxm];
void build(int& p, int l, int r) {
  p = ++cnt;
  if (l == r) {
    for (int i = 1; i > 1;
  build(rs[p], mid + 1, r);
}

void modify(int& p, int l, int r, const int& x, const int& inc, const int& del) {
  if (!p) p = ++cnt;
  if (l == r) {
    if (inc >= 0) ms[p].insert(inc);
    if (del >= 0) ms[p].erase(ms[p].find(del));
    mn[p] = ((ms[p].size()) ? *ms[p].begin() : R);
    return;
  }
  int mid = l + r >> 1;
  if (x > 1, d = min(tmn, mn[rs[p]]);
    if (mid 

[APIO2018] New Home 新家 [线段树,multiset]

标签:位置   find   name   freopen   oid   opera   uil   type   cpp   

原文地址:https://www.cnblogs.com/Isaunoya/p/12375412.html

上一篇:DStream Window 函数

下一篇:Java反射


评论


亲,登录后才可以留言!