Ivan comes again!Time Limit: 1000ms Memory limit: 65536K 有疑
第一种是sum存放每个点的值,然后区间更新,把需要更新的父亲的sum设为-1,代表此区间有被更新过,就不由挪动子节点了。 vj上跑的时间这个快一点。 另一种lazy标志位,区间更新时,把lazy标志位设为1,当查找的区间含lazy过的,就变更子节点位原来的值,所以需要一个tag记录原来的值。 #include using namespace std; #define N 100100 st
#include using namespace std; #define N 100100 int a[N]; struct { int left,right,c; int ln,rn; int ls,rs,ms; }b[N*4]; void pushup(int i){ b[i].ls=b[i*2].ls; b[i].rs=b[2*i+1].rs; b[
#include#include#include#includeusing namespace std;const int maxn=40005;const int bw=20000;#define lson(x) ((x)<<1)#define rson(x) (((x)<<1)|1)int lc[maxn<<2],rc[maxn<<2],ad[maxn<<2],nd[ma
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号