自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 收藏
  • 关注

原创 Codeforces Round #797 (Div. 3)(A-G)题解

题意水题,一个数,让你分成三个数a,b,c,关系大小为b>a>c,要严格大于,而且要使b的取值尽可能地大题解分三种情况讨论即可B. Array Decrements题意给你a,b两个序列,以及一种操作:选中a序列中的一个数,让a序列中除了这个数以外的数全部减一,问最终能否能变成b序列题解维护除bi=0以外,所有ai与bi的差值,如果bi>ai一定不可以,差值不相等也不可以,同时维护bi为0的ai的最大值,如果出现过bi等于0,且ai的最大值大于其他bi不等于其他差值,也是不可以,除此以外都

2022-06-10 23:58:18 175

原创 求第K小数(树状数组+二分)2021icpc河南省省赛赛

补题做到的,没有注意提交人数,看到题就有一点思路就开始敲了,可以转化为经典的主席树问题,区间查询第k小,但是树状数组代码比较简短;题目大意给你一个数组,给了一个k,让你答出,每个数左边第k个比他大的数是多少。题解先把所有的数据用结构体或者pair记录原下标,按照权值从大到小排序,转化为离线操作。从大到小插入数据,每组数据就相当于是一个询问,这样可以保证插入这个数据之前的所有数据都比他大。所以可以用树状数组去记录权值,也就是他左边出现的数的数量,因为是从大到小已经排过序了,出现过的数是一定要大于

2022-05-25 23:19:01 167

原创 归并排序求逆序对(CF1676-H2)

因为今天在补div4的H2时候,发现自己已经忘记了求逆序对的板子,所以就重新学了一遍归并排序主要思想归并排序的主要思想是分治,首先把一个序列分成一半,这样一半一半的分,直到分到只剩下两个元素,把这两个底层的元素归并之后,就是一段有序的子序列,继续这样往上递归,每次都是有两个有序的序列,再合并起来,合成新的有序序列求逆序对求逆序对也是利用归并排序的思想,因为归并排序过程中需要用双指针去在两个有序序列去取最小值,我们假设l–mid是序列a,mid–r是序列b,当最小值取到b序列的元素是,此时a数组里的指

2022-05-17 00:11:14 166

原创 HH的项链(莫队/树状数组/主席树)

题目描述HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答…… 因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。输入格式一行一个正整数 n,表示项链长度。第二行 n 个正整数 ai,表示项链中第 i 个贝壳的种类。第三行一个整数 m,表示 H 询问的个数。接

2022-05-14 00:28:37 546

原创 Assign the task HDU - 3974(DFS序+线段树)

DFS序DFS序是根据DFS遍历树的结点的入栈出栈顺序来给节点赋值的,如下图,黑色的是节点本身的编号,红色的是DFS序以后的数组,数组两个相同的数字之前的标号的的节点,是这个节点的子树,比如红色的2节点,中间有1,3,4三个标号,代表1,3,4是2的子树,将树形结构变成线性结构后,我们就可以用树状数组或者线段树进行操作了题面有一家公司有 N 名员工(从 1 到 N 编号),公司的每个员工都有一个直属上司(全公司的领导除外)。如果你是某人的直属上司,那人就是你的下属,他所有的下属也是你的下属。如果你不

2022-05-09 23:48:34 110

原创 ZOJ16109线段树区间操作(区间染色)

题面Painting some colored segments on a line, some previously painted segments may be covered by some the subsequent ones.Your task is counting the segments of different colors you can see at last.InputThe first line of each data set contains exactly one

2022-05-04 23:34:19 281

原创 2021年icpc江苏省省赛(vp)

A. Spring Couplets很明显的一个签到题,题面废话比较多,大意就是:给你一个n,有两行输入,每一行有n个字符串,每个字符串后面都有一个数字1.每行的最后一个字符串的数字一定要小于等于2,第二行的的最后一个字符串的数字要严格大于22.上下第i个位置字符串后面的数字的数字要相反,不能同时小于等于2或者严格大于2#include <bits/stdc++.h>using namespace std;#define int long longstring a[29], b[

2022-05-02 13:50:29 705

原创 Educational Codeforces Round 115 (Rated for Div. 2) D

题意大概是这样的给出n个二元组(xi,yi) 要求我们选定三个二元组 满足以下条件:1.三组的xi互不相同2.三组的yi互不相同答案是求有多少种方案满足以上的一个或者多个条件。用到的思想和高中排列组合的知识比较像,因为正着考虑每一种合法的情况比较复杂,种类也比较多,所以我们可以倒过来考虑,求出每一个不合法的方案,再用总方案数减去不合法的方案数就可以了具体思路:想要不合法的话,上面的两个条件,有一个不满足的就可以了现在我们随机取一对数字,假设xi为a,yi为b,现在我们已经有b这一种了,第二个

2022-04-28 00:47:11 113

原创 分块入门思想

主要是对于分块思想的一些个人理解主要思想最主要的思想是把一个长度为n数列,均等的分成根号n个块,在对区间进行圣体操作的时候,遇到完整的块,就直接对整个块进行操作,需要用到线段树lazy懒惰标记的区间处理的办法,对于两端不完整的块,直接去暴力遍历它。对于数列分块的分块处理主要是有两种方法每一种是函数法每一种是数组法我自己之前一直用的是函数法,因为函数比较直观,但是直到某天在写一道牵涉分块的题目的时候,被卡常了,隔壁队伍的好兄弟告诉我,函数法常数很大,最好要用数组。分块函数第一种int get(

2022-04-20 23:31:44 115

原创 第k小数/可持久化权值线段树的一些理解

int insert(int p, int l, int r, int x){ int q = ++idx; //每次修改操作都会生成一个新的根节点 tr[q] = tr[p]; //将原来的节点复制下来 if (l == r) { tr[q].cnt++; return q; } int mid = l + r >> 1; if (x <= mid) tr[q].l = insert

2022-04-15 09:47:30 409

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除