可持久化数组
可持久化数组是一种可以回退,访问之前版本的数组
是一些其他可持久化数据结构的基石(例如可持久化并查集)
#include <stdio.h>
#include <algorithm>
using namespace std;
const int N = 1e6 + 7;
int root[N], cnt, arr[N];
struct Node{
int l, r, val;
}T[N*40];
void build (int l, int r, int &now)
{
now = ++ cnt;
if (l == r)
{
T[now].val = arr[l];
return ;
}
int mid = l + r >> 1