上一页 1 2 3 4 5 6 7 8 ··· 10 下一页
摘要: 题目链接 没质数搞不了逆元。 发现2操作在去除之前某1操作的影响,然后要求维护连乘。 单点修改,区间询问。维护区间积。 上线段树。 区间询问还是全区间的,没有懒标记,没有查询函数。 代码(100分): #include<iostream> #include<cstdio> #include<cstr 阅读全文
posted @ 2020-05-27 22:26 汉谡 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题目链接 考虑将每个矩形看做两次操作,分别是在$Y$轴上叠加线段和去除线段。按$X$坐标排序后依次访问扫过。 注意:本题中,坐标表示的是直角坐标系的整点坐标,也即我们计算的是连续的面积,不过这里矩形都是水平的。 那么离散化一波,每个离散点表示到它的后继之间的线段。 考虑使用线段树,维护“覆盖计数”和 阅读全文
posted @ 2020-05-27 21:56 汉谡 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题目链接 首先我们看两个子序列不同是指下标不同,然后答案只跟子序列之和有关,发现这题跟序列的位置无关,那我们直接对数值考虑,开桶$c_x$表示有$c_x$个$x$元素。 我们发现,每个元素$a_i\le 2\times 10^5$,而一个优秀的子序列里的元素必须满足不能有相同的二进制位,所以子序列和 阅读全文
posted @ 2020-05-26 22:08 汉谡 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 首先放代码: for(int s1=s,s2;s1;s1=(s1-1)&s) s2=s^s1; 其中$s$表示集合,$s_1$表示子集,$s_2$表示补集。 首先一个集合本身就是自己的子集,所以我们给$s_1$赋初值为$s$。 然后有一个关于按位与的性质:若$a<b$,则$a\ominus b\su 阅读全文
posted @ 2020-05-26 10:50 汉谡 阅读(311) 评论(0) 推荐(0) 编辑
摘要: 题目链接 设$f_{i,u}$表示第$i$天$u$城市的魔法值。写一下式子:$$f_{i,u}=\bigoplus\limits_{(u,v)} f_{i-1,v}$$ 其中$\bigoplus$表示连续异或。 然后考虑加入邻接矩阵$g_{u,v}$取代枚举出边:$$f_{i,u}=\bigoplu 阅读全文
posted @ 2020-05-26 09:48 汉谡 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题目链接 因为水壶只能倒水给相邻的下一个水壶,而且最后只能喝掉一个水壶里的水,所以喝掉的水壶里的水一定来自于左侧的连续子序列之和,而用在其他地方的倒水次数都浪费了。 所以最优解就是长度为$k+1$的最大子序列之和。因为元素全都是自然数,所以预处理前缀和,枚举区间起点求最大即可。 代码(100分): 阅读全文
posted @ 2020-05-25 18:18 汉谡 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目链接 考虑把每种颜色的贡献放到一个位置来算,当然,要保证该颜色至少出现两次。 发现无论是扫描左端点并在区间第一次出现时取贡献,还是扫描右端点并在区间最后一次出现时取贡献,都没办法用树状数组很方便地维护,因为我们是取区间和来当做答案的,也就是对于某颜色来说,关于固定端点,不固定的那个端点必须比该颜 阅读全文
posted @ 2020-05-25 17:21 汉谡 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题目链接 开颜色种类个二维树状数组,维护前缀和,单点修改、子矩阵查询。 注意读入的顺序,是$x_1\; x_2\; y_1\; y_2$而不是$x_1\; y_1\; x_2\; y_2$。 代码(100分): #include<iostream> #include<cstdio> #include 阅读全文
posted @ 2020-05-25 09:08 汉谡 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题目链接 首先猜一个结论:$\sum a_i\ge c\times s$就可行。 发现这个是显然错误的,因为有一些$a_i\ge s$,它们最多只有$c$的贡献。 那么把这些数去掉,相应地减少$c$的值,接下来呢? 我们发现这个结论成立了。 有两种思路: 我们把选数看作是填一个$c$列$s$行的表格 阅读全文
posted @ 2020-05-23 14:01 汉谡 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目链接 如果只有一条链,可以直接离散化上权值树状数组一遍过。 在树上,考虑怎么消除不同子树之间的影响。 略微思考可以得出,可以在递归子树之前先求一遍询问前缀存下来,回溯回来再求一遍询问前缀,减一下得到子树新增的前缀。再用子树大小减一下,就是当前子树的答案。 代码(100分): #include<i 阅读全文
posted @ 2020-05-22 14:11 汉谡 阅读(110) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 10 下一页