摘要:
算法 构造一个有向图G,每个变量xi拆成两个点2i和2i+1 分别表示xi为假,xi为真 那么对于“xi为真或xj为假”这样的条件 我们就需要连接两条边 2*i —>2*j(表示如果i为假,那么j必须是假) 2*j+1—>2*i+1(表示如果j为真,那么i必须是真) 这就有点像推导的过程 实际上每一 阅读全文
摘要:
要明白树状数组的本质就是“单点修改,区间查询” 怎么实现“区间修改,区间查询”呢? 观察式子: a[1]+a[2]+...+a[n] = (c[1]) + (c[1]+c[2]) + ... + (c[1]+c[2]+...+c[n]) = n*c[1] + (n-1)*c[2] +... +c[n 阅读全文