差分
Mr.Gzj
这个作者很懒,什么都没留下…
展开
-
P1083 借教室(差分)
题意: LP1083 思路:差分数组直接求出在那一天教室不够用,然后On求出那个人要求教室太多。总体O(n)的复杂度 #include <bits/stdc++.h> #define ll long long using namespace std; const int N = 1e6 + 10; int n, m, a[N]; ll p[N]; struct node { ...原创 2019-09-16 21:32:26 · 134 阅读 · 0 评论 -
19上海网络赛 Light bulbs (差分)
题意:有n盏灯,初始都是灭的状态,p次操作,每次操作翻转a到b盏灯的状态,问最终操作完成后几盏灯是亮着的。 思路:内存限制8192K,显然不能用线段树,只能用数组操作,但是也不能直接遍历1e6的数组,所以我们用map标记头和尾,最后只遍历所存的点就好,将头每次加1,尾后面的点每次减1,对于每次操作,只有奇数次才能操作。具体看代码。 #include <bits/stdc++.h>...原创 2019-09-16 15:26:43 · 164 阅读 · 0 评论 -
树上差分 P3128 [USACO15DEC]最大流Max Flow
树上差分和线性差分的最基本思想是一模一样的。 点的差分 我们在线性差分上面是吧线段拆成射线,某一个点的标记代表它及以后的元素全部做一个变化;那我们在树上的某一个结点的标记就代表它所有的父亲(包括自己)都做一个变化。假如我们要在两个节点(x,y)之间的路径上的点全部+1,那么我们只需要在x上做+1的标记,y上做+1的标记,lca(x,y)上做-1的标记,father[lca(x,y)]上做-1的标...原创 2019-09-25 11:26:19 · 136 阅读 · 0 评论 -
Rainbow Roads(dfs序+树上差分)
题目链接,D题 题意: 给出一颗树,树上每条边都有一个颜色,定义如果以这个点为端点的所有简单路径都没有相邻的两条边颜色相同时,这个点为good点,求goodgoodgood点的数量以及是哪个点。 思路: 假设节点u和节点v均与节点w相邻,且e(w,u)与e(w,v)颜色相同,那么要分两种情况: uuu,vvv均是w的子树,则这两个点的子树上所有的点包括这两个点都不是goodgoodgood点。 ...原创 2019-10-05 00:40:32 · 274 阅读 · 0 评论