自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 问答 (1)
  • 收藏
  • 关注

原创 树状数组入门

树状数组区间操作

2022-08-17 23:15:08 182 1

原创 ST表(区间最值问题)

ST表

2022-08-15 22:23:08 451

原创 二分图最大匹配(染色判二分图)

染色判二分图+匈牙利算法

2022-08-15 20:56:01 172

原创 Codeforces Round #804 (Div. 2) C(mex)

蒻苟成长录

2022-07-05 11:05:34 188

原创 dijkstra堆优化 板子

堆优化的dijkstra

2022-06-13 20:43:58 289

原创 Codeforces Round #792 (Div. 1 + Div. 2)B+C+D

B:题意:输入题目给定的a,b,c,(其中a<b<c)求三个值x,y,z 使得满足x mod y = a, 1y mod z = b, 2z mod x = c 3输出任何满足条件的x,y,z题解:要求任意满足条件的三个值互相取模得到输入值,我们不妨假设一个输出的值就是其对应的输入值,如y=b,此时要求得另外两解,我们可以对a和c进行调用,我们可以发现以下规律,但是这会有一个特殊情况,因为c使最大的,所以 a+b+c<3*c,a+b+c ...

2022-05-20 22:09:30 289 2

原创 区间数据离散化

对于一类范围很大,而实际用到的范围又很小的题目,如下题,数轴上的范围2*10^9次,而实际上有操作过的个数最多有n个,如果用前缀和计算该题的话在数据小的情况下是可以做的,但是本题范围若有前缀和的话遍历加每一个值也必然会tle,这时候我们就用到了离散化这个方法AcWing 802. 区间和 假定有一个无限长的数轴,数轴上每个坐标上的数都是0。现在,我们首先进行n次操作,每次操作将某一位置x上的数加c。接下来,进行m次询问,每个询问包含两个整数l和r,你需...

2022-04-27 14:26:03 202

原创 最大矩阵和

题目:给定一个n✖n大小的矩阵,求其中子矩阵的和最大值(来自洛谷p1719)求一个方向上的前缀和,该方法计算矩阵竖直方向上的前缀和 a[i][j]=a[i-1][j]+x ,然后用 i 和 j 确定子矩阵行坐标的范围,即第 j 行到第 i行,然后再循环一个k来计算子矩阵内从第1列到第k列的和,若和为负值了就重新计算子矩阵#include <bits/stdc++.h>#define N 10010#define rep(i,a,b) for(int i=a;i<=b..

2022-04-27 13:55:22 120

原创 Codeforces Round #783 (Div. 2)abc

A - Direction Change题意:给定 n 和 m ,就是对于一个 m*n 的矩阵,求从(1,1)到达(n,m)所需要的最小步数,题目限制是,对于上移,下移,左移,右移每个操作不能连续操作。题解:我们不难发现,当m和n的绝对值差在1以内的时候,最短步数都是 m+n-2如图,当m=4时,若n=4,ans=6,若n=5,ans=7,但当n和m的绝对值超过1时,超过一个步数就+3,再超过一个就+1,以此类推,当然还要特判一下n和m等于1的情况#include <b.

2022-04-20 23:33:44 266

原创 统计子矩阵

十三届蓝桥杯C++B组第F题,求各个子矩阵和样例输入:34 101 2 3 45 6 7 89 10 11 12样例输出:19【样例说明】满足条件的子矩阵一共有 19,包含: 大小为 1 × 1 的有 10 个。大小为 1 × 2 的有 3 个。大小为 1 × 3 的有 2 个。大小为 1 × 4 的有 1 个。大小为 2 × 1 的有 3 个。【评测用例规模与约定】对于 30% 的数据,N, M ≤ 20.对于 70% 的数据,.

2022-04-12 23:07:55 516

原创 2022十三届蓝桥杯体验

第一题就是简单的签到题,九进制转化为十进制,话说原来蓝桥杯比赛页面还有计算器可以用,以防万一我也是把第一题算了三四遍。第二题的争议太大了,我没有考虑0的情况,所以写的4,还有很多人考虑了逆序的情况,可是题目说了210那个没有顺子,所以问题就在有没有0喽,可能这题争议这么大,到时候含0和不含0的答案都对吧。第三题我就是先用n/(5*a+2*b)算出完整的星期数,再用一天天加过去直到算出来结果,算是签到题吧。第四题也是挺简单的,就是算该位置到边边再回来的距离,这样树就能长最高喽...

2022-04-11 10:58:13 1322 1

原创 并查集的初步学习

当我们面对许多数据量(且其中某一部分数据之间相互有联系的时候),如下六个元素,1和2之间连接,3、4和5相互连接,在处理某部分问题的时候十分难处理,因此聪明的人类引出了并查集这个概念方法来解决问题。(好耶~)并查集是将所有元素分为几个集合,每个集合内的元素互相连接,用广泛的介绍就是,如果A和B是好朋友,B和C是好朋友,虽然A和C不认识,但是通过B的介绍,A和C也能成为好朋友,这样ABC都能在一个集合内,这如同树一般的分叉连接,并且不同的集合内不会有共同的元素1、并查集的fi...

2022-04-10 18:08:17 331

原创 Codeforces Round #780 (Div. 3) C+D

C:Get an Even String题意:输入一个仅含小写字母的字符串,请问最少删除多少个字母使得,剩下的字符串中含有成对的相同字母,如“ababa”,在进行三步后有“bb”或“aa”为最少步骤,“asdfa”在三步后有“aa”为最少步骤。思路:本菜菜在冥思苦想半个小时有了dp这个思路,先记录字符串中每个字母的数量,因为单个字母是一定要删的,所以先用两个O(n)删去单个字符,同时记录个数,然后想,在字符串从前往后遍历的时候,用数组记录从头到此位置要达到题目要求的最少次数,而我们每次要进行操..

2022-04-03 01:44:14 840

原创 卡特兰数(Catalan)的应用

先令h(0)=h(1)=1,h(n)=h(0)*h(n-1)+h(1)*h(h-2)...h(n-2)*h(1)+h(n-1)*h(0) (n>=2)则h(2)=2, h(3)=5, h(4)=14, h(5)=42, h(6)=132, h(7)=429, h(8)=1430, h(9)=4862, h(10)=16796综上1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 969

2022-03-30 11:37:09 315

原创 C++的max_element和count,rotate函数

最近在cf补题的过程中学到了几个个人觉得比较有用的stl函数一:std::max_element ( begin(), end() ),用于查找某一容器或数组的开始到结尾之中最大值位置的地址,如果有多个等值最大值,则返回从左往右第一个最大值地址、(在地址与容器或数组相加减的时候返回的是下标)同时相同作用的min_element()函数也是一样的用途,这两个函数在查找输入一串数据中最大最小值的下标时特别方便。二:std::count(begin,end,key),begin是容器的

2022-03-28 23:52:39 1268

原创 Codeforces Round 125 (Rated for Div. 2) A+B+C

A:Integer Moves第一题题意为每次数据给定一个坐标为x,y的值,求从原点到这个坐标移动的整数次数最少是多少其实有三种情况,第一种坐标是(0,0),则移动次数为0,第二种坐标到原点距离根据勾股定理求得长度为整数,则移动距离为1,第三种是当求出两点距离为根号数时,这时候需要水平和竖直分别移动一次,则最多次数为两次。#include <bits/stdc++.h>using namespace std;typedef long long ll;int f(int

2022-03-23 18:16:10 436

原创 Codeforces778(Div.1+Div.2 )A+B+C c++

我太菜了,做B的时候先是爆内存然后爆时,然后就寄了,继续努力吧A - Maximum Cake Tastiness第一题直接过,求两块蛋糕的最大和#include<iostream>#include<algorithm>using namespace std;int a[1010];int main(){ int t,n,i,sum; cin>>t; while(t--){ memset(a,0,sizeof(a)); cin&gt.

2022-03-21 21:58:59 806

原创 高精度大数求阶乘

由于int,long long的范围有限,求数的阶乘时被限定在某范围内导致不能求得所需结果,此时开一个数组每个位置单独存放一个数字,数组的大小就是我们设定的所求值的最大位数,其解决了普通类型放不下结果的刚需 。本题是一道简单的求输入n的阶乘,用自定义mul函数不断累乘数组每一位#include <iostream>#include <algorithm>using namespace std;const int N=100;int a[N];void mul(

2022-03-20 14:27:48 88

空空如也

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

TA关注的人

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