题意比较难理解,就是给你n个点的树,然后给你m个修改操作,每一次修改包括一个点对(x, y),意味着将x到y所有的点权值加一,最后问你整个树上的点权最大是多少. 比较裸的树链剖分了,感谢Haild的讲解. 首先第一遍dfs预处理出size,son(重儿子). 第二遍dfs重编号. 然后线段树就可以了. 感觉就是把一棵树弄成一条一条的链,新奇的hash方法. #include <bits/stdc++.h> #define rep(i, a, b) for (int i = a; i <=…
Problem G Time Limit : 4000/2000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 16 Accepted Submission(s) : 5 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description There are Y lines parallel t…
1.Circular Barn http://www.usaco.org/index.php?page=viewproblem2&cpid=621 贪心 #include <cstdio> #include <vector> #include <algorithm> #include <cstring> using namespace std; long long sum(long long v) { )*(*v+)/; } int main()…
HDU 4678 Mine 对于每个空白区域,求SG值. 最后异或起来等于0,先手必败. #pragma comment(linker,"/STACK:102400000,102400000") #include<cstdio> #include<cstring> #define MAXN 1010 #define oo 1234567890 int arr[MAXN][MAXN]; bool vis[MAXN][MAXN]; int n, m; int dg,…