线段树
lalala???
这个作者很懒,什么都没留下…
展开
-
K - Kingdom of Ants Kattis - kingdomofants
题解:线段树扫描线求面积交,维护区间修改次数为0的和区间次数为奇数和偶数的,偶数的个数减去为0的个数就是面积交为偶数个矩阵。 代码: #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=2e6+100; struct Line{ ll y,x1,x2,v; ...原创 2019-11-30 14:15:38 · 287 阅读 · 0 评论 -
K - Addition Robot CodeForces - 1252K
题解:对于线段树上的一段,Ax=x*a1+y*b1 , Bx=x*a2+y*b2, x,y为初始给的A,B值,Ax,Bx,为操作完这一段的结果值,如果线段树上两段合并前一段的Ax为后一段的x,前一段的Bx为后一段的y,带入结果就算出两段合并的值。对于反转操作,其实就是Ax变为 Bx,然后a和b交换。 代码: #include <bits/stdc++.h> using names...原创 2019-10-29 16:51:42 · 210 阅读 · 0 评论 -
The beautiful values of the palace
题目链接:https://nanti.jisuanke.com/t/41298 题目大意:给一个n*n的矩阵,矩阵的值成螺旋状,找到m个格子,每个格子的值为原先数字的位数和,其他的全为0,询问p次给定矩阵的权值。 题解:首先快速求出这个点的原先的值,寻找这个点在那个环上,在四个边上那个边上,就能求出来了,线段树前缀和,扫描线的做法,一次查询分成两次。 代码: #include <b...原创 2019-09-02 16:40:45 · 141 阅读 · 0 评论 -
Rikka with Travels
题意:求出两条不相交的路的不同长度对。 题解:换根dp维护最长、次长、次次长链,维护子树的直径和子树的次长直径,线段树区间更新,单点查询。 代码: #include <bits/stdc++.h> #define ls x<<1 #define rs x<<1|1 using namespace std; const int maxn=1e5+5;...原创 2019-08-20 21:00:14 · 198 阅读 · 0 评论 -
递减序列
Problem Description 现在给你n个不同的数,a1,a2,a3, ..... ,an。求长度为k的不同递减序列的个数,既包含连续也包含不连续的序列。 例如:给你n=3,k=2,原始序列为 3 ,1,2 。长度为2的递减序列为3,1和3,2; 一共有两组所以答案为2. Input 第一行输入n,k(1<=n<=20000, 2=<k<=10)分别代...原创 2019-02-27 21:00:10 · 1216 阅读 · 0 评论 -
线段树
刚刚学过一些有关线段树的知识,现在就简单的说一下线段树是什么。 线段树就是一棵树,例如我们要求一段区间的和,那么刚开始的树的根就是存的全部区间的和,接下来左儿子为1-mid区间的和,而右儿子就是mid+1--n的区间和,左儿子和右儿子以此类推直到某个节点的区间为他自己那么我们就建好了一线段树。 建树代码: struct node { int l,r,num;//l,r。存的是区间范...原创 2018-12-07 21:53:34 · 116 阅读 · 0 评论 -
D - Just a Hook
题目链接:https://cn.vjudge.net/contest/269834#problem/D 题目大意:刚开始给你n个点,每个点的价值是1,然后会区间更新价值,询问最后总的价值是多少。 题解:lazy算法。 代码: #include <iostream> #include <algorithm> #include <stdio.h> #inc...原创 2018-11-15 11:30:17 · 276 阅读 · 0 评论 -
A - 敌兵布阵
题目链接:https://cn.vjudge.net/contest/269834#problem/A 代码: #include <iostream> #include <algorithm> #include <stdio.h> #include <stdlib.h> #include <string.h> using name...原创 2018-11-15 11:25:30 · 447 阅读 · 1 评论 -
B - I Hate It
题目链接:https://cn.vjudge.net/contest/269834#problem/B 题目大意:单点更新,区间查询。 题解:线段树。 代码: #include <iostream> #include <algorithm> #include <stdio.h> #include <stdlib.h> #include &l...原创 2018-11-15 11:24:03 · 305 阅读 · 0 评论 -
C - A Simple Problem with Integers
题目链接:https://cn.vjudge.net/contest/269834#problem/C 题目大意:区间更新和区间查询。 题解:lazy算法,加线段树。 代码: #include <iostream> #include <algorithm> #include <stdio.h> #include <stdlib.h> #in...原创 2018-11-15 11:21:38 · 116 阅读 · 0 评论