摘要: 题目链接 线段树,求区间最大值减去区间最小值的值。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> using namespace std; const int N = 阅读全文
posted @ 2020-07-29 23:29 zhuzihan 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题意: 每张海报覆盖了区间$[l_i,r_i]$。现在按顺序贴$n$张海报,求到最后还能看到几张海报 分析: 首先不是问能看到几张不同的海报片段,样例中有$5$个海报片段,但是只有$4$张海报。 我们可以先把所有的海报贴上去,线段树记录区间是被第几张海报覆盖的。如果有多张海报,则$cov 阅读全文
posted @ 2020-07-29 20:34 zhuzihan 阅读(52) 评论(0) 推荐(0) 编辑
摘要: 题目链接 线段树区间修改,每个数均加上一个值。区间查询和。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<string> #include<cmath> using namespa 阅读全文
posted @ 2020-07-29 20:00 zhuzihan 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 题目链接 线段树,单点修改,区间最大值查询。 #include<bits/stdc++.h> using namespace std; const int N = 2e5 + 10; int n,m; #define mid ((l + r) >> 1) #define ls (nod << 1) 阅读全文
posted @ 2020-07-29 19:48 zhuzihan 阅读(65) 评论(0) 推荐(0) 编辑
摘要: 题目链接 维护一个单点修改,区间查询的数据结构,树状数组和线段树均可以。 我写了树状数组。 #include<bits/stdc++.h> using namespace std; #define lowbit(x) (x & (-x)) char s[10]; int n; long long c 阅读全文
posted @ 2020-07-29 19:40 zhuzihan 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 题目链接 XJ只有一组数据。 推式子: \[ \sum_{i=1}^{n} \sum_{j=1}^{m} gcd(i,j)^k\\ \sum_{i=1}^{n}\sum_{j=1}^{m} [gcd(i,j) = d] d^k\\ \sum_{d=1}^{n}d^k \sum_{i=1}^{n} \ 阅读全文
posted @ 2020-07-29 19:26 zhuzihan 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题目描述: 输入格式: 输出格式: 样例输入: 3 1 2 1 2 3 1 1 3 2 样例输出: 0 2 2 数据范围: 时间限制: 1s 空间限制: 64MB Solution 我们把第一个占领的点作为树的根,然后每占领一个点,相当于就要不断向父亲连边,直到形成一个联通块。 每条边最多连一次。复 阅读全文
posted @ 2020-07-29 19:21 zhuzihan 阅读(124) 评论(0) 推荐(0) 编辑