摘要: 题目大意:给定一个长度为 N 的序列,M 个询问,静态查询区间 [l,r] 内的不同颜色数的平方和。 题解:直接莫队即可。 代码如下 cpp include define pb push_back define mp make_pair define all(x) x.begin(),x.end() 阅读全文
posted @ 2019-03-28 23:20 shellpicker 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定 N 个点的 M 条约束,约束形式为:$a_i \lor a_j = 1$。 题解:拆点什么的就不说了,在求出一组解的时候,考虑到 Tarjan 找环的过程中,scc 染色是按照拓扑序的逆序来进行的,即:拓扑排序中最后被删除的节点的 cor 值最小。根据这个性质,在一定有解的情况下,对 阅读全文
posted @ 2019-03-28 20:00 shellpicker 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 单位矩阵相当于普通乘法算术中的单位元。 代码如下 cpp include using namespace std; const int mod = 1e9 + 7; const int maxn = 110; typedef long long LL; struct matrix { LL mat[ 阅读全文
posted @ 2019-03-28 19:48 shellpicker 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 题目大意:维护一个长度为 N 的序列,支持单点插入,单点询问。 注意事项如下: build 函数中要记得初始化 fa。 插入两个端点值。 代码如下 cpp include define pb push_back define mp make_pair define all(x) x.begin(), 阅读全文
posted @ 2019-03-28 15:09 shellpicker 阅读(243) 评论(0) 推荐(1) 编辑
摘要: 题目大意:维护一个长度为 N 的序列,支持区间修改、单点查询。 代码如下 cpp include using namespace std; const int maxn=5e4+10; const int maxb=800; int n,m,a[maxn]; struct node{ int l,r 阅读全文
posted @ 2019-03-28 10:32 shellpicker 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 题目大意:维护一个序列,支持区间染色,查询区间中等于某个颜色的点的个数。 题解:考虑直接用线段树进行维护,维护区间相同颜色值和一个区间颜色是否相同的标记即可。 代码如下 cpp include using namespace std; const int maxn=1e5+10; int n,m,a 阅读全文
posted @ 2019-03-28 09:35 shellpicker 阅读(108) 评论(0) 推荐(0) 编辑