计蒜客习题:帕吉的肉钩
题目: 在 DotA 游戏中,帕吉的肉钩是很多英雄最害怕的东西。钩子由连续若干段的等长金属棒制成。 现在帕吉对钩子由一些操作: 我们将金属棒 1~n 依次编号,帕吉可以把编号 x~y 的金属棒变成铜棒、银棒、金棒。 每段铜棒的价值是 1;每段银棒的价值是 2;每段金棒的价值是 3。 肉钩的总价值是 n 段金属棒价值之和。 帕吉想知道若干操作以后钩子的总价值。 输入格式 第一行一个整数 N(1≤N≤10^5),表示肉钩金属棒的数量,初始状态为 铜棒。 第二行一个整数 Q(1≤Q≤10^5),表示操作数。 接下来 Q 行,一行三个整数,X,Y,Z(1≤X≤Y≤N,1≤Z≤3) 输出格式 一行一个整数,表示钩子的总价值,用样例中的格式。 样例输入 10 2 1 5 2 5 9 3 1 2 3 4 样例输出 The total value of the hook is 24. AC代码:线段树区间更新 #include<iostream> using namespace std; const int MAX_N = 10010; int s[100005 * 4],col[100005 * 2]; void up(int p){ s[p] = s[p * 2] + s[p * 2 + 1]; } void down(int p,int l,int r){ if(col[p]){ int