ref #include <iostream> #include <cstring> #include <cstdio> using namespace std; int n, m, a[100005], sum[400005], tag[400005], q; struct Node{ int opt, lll, rrr; }nd[100005]; void pushDown(int o, int l, int r, int lson, int rson, int m
差不多理解板子之后,写了一些奇怪的题. 但是还是那个问题:树剖真好使. 魔法森林:mikufun说这个是傻逼题. 为了得到书法大家的真传,小 E 同学下定决心去拜访住在魔法森林中的隐士. 魔法森林可以被看成一个包含n个节点m条边的无向图,节点标号为1-n,边标号为1-m. 初始时小 E 同学在号节点 ,隐士则住在n号节点.小 E 需要通过这一片魔法森林,才能够拜访到隐士. 魔法森林中居住了一些妖怪.每当有人经过一条边的时候,这条边上的妖怪就会对其发起攻击. 幸运的是,在1号节点住着两种守护精灵: