自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode刷题之二分

二分二分是十分基础的一个算法,但是二分对于有序元素的查找应用效果十分优秀。由于最近在刷LeetCode,有二分的题目,感觉有不少感受,觉得以前对于二分也没有太重视,毕竟有对应的库函数可以使用,借此机会,写一篇博客,记录题目和感受。二分的关键点元素有序,是能按照一个给定原则排序的明确需要二分达到的目的(例如我要寻找一个确切的一个元素还是一个区间)确定寻找时区间端点的变化,已经结束的条件搜索某个确切元素704. 二分查找这题我想达到最后搜索区间只剩这个要找到的数(如果找得到的话),那么最

2022-03-08 16:00:11 6321

原创 CCF 201312-4 有趣的数

分析:题目是一个有限制的数字序列问题。题目的限制条件可以大体上分为:给定数字的先后顺序限制 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前 最高位数字不为0数字出现次数 数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次本题中我们难以将数字的先后顺序和个数的限制同时简单实现.我们只好分开实现。我们优先实现顺序限制(条件更多方便具体化实现)没有数字都出现至少一次的限制时,就可以有多具体情况(我们称这些数字为“前有趣数”):只有2只有2,..

2021-04-09 18:23:59 185

原创 2020牛客暑期多校训练营第二场

B Boundary对于圆而言有三点定圆定理和相关公式。其中x0,y0坐标为圆心坐标。我们利用三点定圆定理求出的圆心坐标来判断是否点在同一圆上。除开原点,每次确定圆还需要两个点。若圆上除了原点还有N个数据点,那么每个数据点都能和其他(N-1)个点确定这个圆,那么我们通过两个点确定的圆心数和圆上的点数有这样的关系。C(N,2) *(圆上的点的数量) = 圆心的重复出现的次数。其实比赛是可以做出来的,因为思维固化习惯性用STL(map),忘记了sort,超时。代码:#include<bi

2020-07-14 23:33:03 338

原创 2020牛客暑期多校训练营I 1 or 2

I 1 or 2带花树算法的应用。主要对于带花树算法进行了了解,对缩环的操作的理论证明看了很多资料(现在想想其实可以带过的)。但是对于这一题的具体做法不是很了解,觉得挺抽象的(大佬都只贴一个代码),在使用带花树算法前的处理不是很清楚。直到彭磊大佬的博客讲解贴出来,方才觉得醍醐灌顶。代码明天整...

2020-07-14 22:59:48 212

原创 processing结课设计引用的范例程序的展示

转载Minim库的自带的范例程序//AnalyzeSound/** * This sketch demonstrates how to use an FFT to analyze * the audio being generated by an AudioPlayer. * <p> * FFT stands for Fast Fourier Transform, which is a * method of analyzing audio that allows yo

2020-05-09 15:18:47 460

原创 后缀排序

后缀排序顾名思义,后缀排序是将字符串的后缀子串按照字典序排序的算法。sa[i]sa[i]sa[i]表示排名为i的后缀的开头位置rank[i]rank[i]rank[i]表示从i开始的后缀的排名很显然sa[i]sa[i]sa[i]和rank[i]rank[i]rank[i]是就互逆的(sa[tank[i]]=isa[tank[i]] = isa[tank[i]]=i)直接找出所有后缀再排序...

2020-04-22 20:10:36 2546

原创 Edmond-Krap算法

网络流之最大流网络流:利用流水的思想,解决问题的一种方法(与其说是方法不如说是思想)最大流:基于网络流的,一种求最大流量的一类问题。问题示例:最大流算法Fold-Fulkerson...

2020-04-06 17:23:57 403

原创 Sticks(poj1011&&蓝桥杯训练)

这个剪枝简直了,做了几次数据不强的类似的题,想都没想直接用之前的方法,疯狂超时,心态爆炸,还是看了别人代码,发现远不止我想的那么简单。还是too young too simple进入正题,这是一个要还原树枝的题目(题面)。我们可以理解为,把给出的所有数字序列中的数任意不重复地组合成若干个数,不限制组合成的数的个数,但要求它们都为同一个值,求满足要求的最小值。这样没有规律的组合的情况,最方便...

2020-03-18 22:49:34 180

原创 基础数论练习1——持续更新

(1)f(n)这题是素数筛的基础上的找规律的题。规律:Gcd(n)={pn=px1n=p1x1∗p2x2...pkxkGcd(n)=\begin{cases} p & n = p^{x} \\1 & n=p_{1}^{x_{1}}*p_{2}^{x_{2}}...p_{k}^{x_{k}} \end{cases}Gcd(n)={p1​n=pxn=p1x1​​∗p2x2...

2020-03-05 18:06:19 356

原创 【专题训练】基础dp(下),内含最长上升子序列,最长公共子序列,区间dp

(1)Longest Ordered Subsequence最长上升子序列的问题,是一个很经典的dp,由于dp的限制比较大,我就简单讲一下dp,在讲一下其他的方法。动态规划我们首先要明确一点,我们要求的上升子序列,要严格保证单调增。我们很容易发现在,前i-1个序列的子序列确定后,我们就可以通过比较 (前i-1个的最长上升子序列) 和 (第i号和其前面比i号元素小的元素为末尾最长子序列的...

2020-02-27 15:48:05 176

原创 【专题训练】基础dp(上)

(1)ABBA根据题意,dp就行了。dp[i][j]中的i,j分别为A,B的个数。当前A的数量不能比当前的B多过N,因为就算j个B全部来组成BA,剩下的A就只能组成AB(虽然目前B都没有出现)所有i - j <= N,当前位置才能是i,在表达式上看,就是dp[i][j] = dp[i][j]+dp[i-1][j];前(i)+(j)个字母从前(i-1)+(j)字母转移得到,即第i+j个...

2020-02-24 13:38:43 137

原创 Codeforces Round #600 (Div. 2)

A - Single Push背景:输入描述:输出描述:样例:

2019-11-24 11:33:51 221

原创 牛客练习赛54(仍在更新,目前有ABC题)

牛客练习赛54A乘积题目描述记Ai=(00..011..1⏟)2i个1\begin{matrix}A_i=(00..0\underbrace{11..1})_2\\\quad\quad\quad\quadi个1\end{matrix}Ai​=(00..011..1​)2​i个1​个1​,即二进制表示下后i位为1,其余位为0的数。给定一个正整数n,求∏i=1n∏j=1nAi&Aj...

2019-11-20 13:01:49 375 2

原创 2019年秋季学期第九周周任务——YCG

周任务算法任务:主席树具体任务:HDU1394权值线段树搞一搞:求序列所有逆序对的个数,在根据首位交换,逆序对在本题中的个数变化N-2*a[i]-1的算式(首位的数放在最后的位置使得(比a[i]大的)逆序对多了N - a[i]个,少了(比a[i]小的)a[i] + 1个),求出min值#include<iostream>#include<stdio.h>...

2019-10-31 19:52:43 206

原创 主席树

PS(本博客只涉及最基本的主席树)主席树主席树又叫可持久化线段树(主席树实际上是一种对线段树进行可持久化操作的一种方式,并不唯一,只是性能比较优越,现多把两者划等号),还可以叫函数式线段树,但是由于发明者叫黄嘉泰(hjt),所以叫主席树。上面讲到了主席树是一种可持久化线段树,它具体是对权值线段树的可持久化的数据结构。关于权值线段树,我在这里说两句。权值线段树——就是让线段树维护区间内的数出...

2019-10-31 00:33:11 181

原创 2019牛客多校训练营第七场E——Find the median——离散+树状数组+二分(树状数组是个大宝贝)

原题题址首先声明,本篇博客不介绍离散化,二分寻找想看线段树解法的戳这里我绝不是故意把一题写两篇博客,恶意提高阅读量啊。首先我是觉得这两种解法的数学要求都不高,但是想法不同(好吧其实大部分都是相同的),其实主要原因就是我开始没想到我会再用树状数组在写一遍,我开始了解到的方法有点恐怖。有一说一,我不想看了都,因为就是一个可以线段树无脑(没有任何特殊的数学想法,除了题目数据的原因必须的处理以外,其...

2019-10-24 21:55:40 172

原创 POJ2266——Ultra-QuickSort

原题题址其实嘛,这个求冒泡排序的次数的问题,好像叫啥逆序对,我不是很了解啊。我就知道,最小次数就是每个数最小交换次数的和,每个数最小交换次数就是找出是每个数前面有几个大于他的数就结了么。晓得了这个,介个问题嘛,就按想法整,从前往后找,找在当前数前面有几个大于它的数。虽然是权值线段树的活,但是由于某些原因,我们就用树状数组搞定它。那咋整呢?首先,把序列排序(便于单点修改,要是线段树就不需要)...

2019-10-24 21:09:45 145

原创 2019年秋季学期第七周周任务——YCG

周任务:算法任务:树状数组具体任务:我康了康pl大佬的博客,才发现我的周任务博客这么不友好,可能也没想谁看吧,以后除了模板题都单独写博客。HDU1166——敌兵布阵模板题不说啥了啊#include<iostream>#include<stdio.h>#include<string.h>using namespace std;const in...

2019-10-24 20:40:54 236

原创 2019牛客多校训练营第七场E——Find the median

原题题址寻找区间中位数,我想大家肯定有不少想法。例如离散化+树状数组+二分或者就是离散化+线段树。我在这里介绍的就是离散化+线段树的方法,其实这种线段树是权值线段树。具体啥是权值线段树呢?我之后写主席博客的时候会详细讲。你可以理解为一个维护点出现次数的线段树,它可以算出当前序列中的第K大值。这里的权值线段树较其他线段树的难点就是离散化和线段树维护的是左闭右开区间内的数出现的个数。为啥要左...

2019-10-23 12:53:21 156

原创 树状数组&差分树状数组(内含lowbit函数原理讲解)

树状数组:树状数组是一种类似简化版线段树的数据结构,它可以求区间和,他比线段树好在更容易实现。树状数组的实现的想法:树状数组的实现如图形所示:A数组是要放入树状数组的数组,C数组就是树状数组,C数组的值是由A数组的部分值的和。由图可知:C[1] = A[1];C[2] = A[1] + A[2];C[3] = A[3];C[4] = A[1] + A[2] + A[3] + A[...

2019-10-21 21:03:39 1612

原创 线段树——朴素线段树

线段树其实接触好久了,但是一直没找到一个机会写一篇博客关于线段树的,现在写一篇吧。什么是线段树线段树是一种搜索二叉树,它的一个点可以序列代表一个区间的信息,它可以快速实现区间的查询(O(logN)),它也支持区间修改,而且修改速度非常快。线段树是如何实现的如图线段树的子节点的信息被综合合并存储在父节点,这样使得我们很容易实现区间的查询,不需要一个个点去查询。例如:1-2区间的信息,...

2019-10-16 10:35:43 276

原创 2019年秋季学期第六周周任务——YCG

(为啥没有第五周?去问国庆。)周任务:算法任务:朴素线段树具体任务:线段树就是一种比较超乎萌新(我)想象的数据结构吧,初识就觉得“哇,好难,好厉害的亚子”,用多了就觉得还好。它的关键在于一种区间的思想,lazy标记的使用的那种延迟下传的思想,能活用这种思想才是学习线段树的作用吧。好用的板子千篇一律,有趣的bug万行难求。为了不影响各位的“找bug”或者“找我的板子到底和别人的板子有啥...

2019-10-11 18:39:18 183

原创 2019年秋季学期第四周周总结——YCG

周任务:算法主题:单调栈具体任务:对于单调栈还是比较熟悉的,完成任务过程出现了一些困难——都是源自自己对题意的理解,单调栈倒是没啥问题。POJ2559(一维单调栈维护直方图的面积)链接代码:#include"iostream"using namespace std;const int maxn = 100000+5;int s[maxn],H[maxn],top,N;int...

2019-09-27 19:34:25 170

原创 牛客练习赛51——D羊吃草

原题题址把羊和草对应画成图,就很容易发现是二分图的最大匹配问题,最直接的就是匈牙利算法算法#include"bits/stdc++.h"using namespace std;const int maxn = 5e5+10;int head[maxn],cnt = 0,N,Q,l[410],r[410],be[410];bool Vis[410];struct Edge{ i...

2019-09-22 16:12:45 221

原创 匈牙利算法——解决二分图匹配

二分图:一中特殊的无向图,可以分为两个有关联边的集合(集合的点之间的点没有边)如图:谈到二分图,不得不将二分图的匹配(最大匹配,最小没啥意义)这就要谈到关于匈牙利算法,它也许不是最优化的,但是它是把这一类题目最基本思想展现出来的最简单最直接的算法。我们如果#include"bits/stdc++.h"using namespace std;const int maxn = 5e5+10...

2019-09-22 14:32:19 251

原创 线性基

也许在不知道线性基之前,看到xor,就会让你想起被异或支配的恐惧。但是,线性基——他来了,他来了他带着“希望”走来了。对于一般的异或的题目都可以用线性基解决。那么什么是线性基捏?线性基:(1)对于一个AAA集合,它的所有元素都可以由一个基底元素集(集合BBB)中的某些异或表示,而且每个AAA都有至少可以找到一个BBB。∀ai∈A{a1...an..},ai=bk xor&nb...

2019-09-12 20:16:33 101

原创 【2019ICPC南京网络赛】A. The beautiful values of the palace

原题题址很自然地这题会想到,二维前缀和。但是N啊,1e6,二维会爆掉。那就不能这么整,得离散化,离散化不好使用二维前缀和。我们有一个更方便的东西二维偏序。二维偏序:对于每个点A,都可能有另外一些点的x、y坐标均小于等于点A的x、y坐标,这些点的数量即为点A的二维偏序值。一维的可以直接排序,二维的怎么办呢。我们也根据x,y排个序,依次增大地加入树状数组(降到一维,并求区间和),但是值得注意的是...

2019-09-05 21:36:19 114

原创 【2019ICPC南京网络赛】D. Robots

原题题址说说实话,这题在没接触过概率dp的时候我不太会做,自学了点概率dp的时候就不太难了。说实话我的题意分析有问题,以为只需要算出期望日期就行了,结果忘了还要算期望花费。其实两次期望dp就行,而且由于两个转移方式相同,推出一个就行了。时间期望,dp1[i]dp_{1}[i]dp1​[i]表示到点i的期望时间,根据每个点的概率回推,每次回推时间多1,很容易得到。dp1[i]=dp1[i]N...

2019-09-03 18:25:41 297 3

原创 关于莫比乌斯的两三事(持续更新)

从初识莫比乌斯反演,就陆陆续续地看了一些博客,每次都懂得差不多(可能没有频繁遇见相关题目吧),都没有一口气搞完,今天记录一下。当然我不是大佬,不了解那么多性质,当然也无法给出完备的证明,但是希望无论是以后又忘记了的我,还是没有没有接触过的人,看了这篇博客有一些帮助。莫比乌斯函数莫比乌斯函数怎么得出来的,我觉得没必要搞清楚,了解就行。莫比乌斯函数μ(x)\mu(x)μ(x) 的定义是这样子的:...

2019-08-13 13:56:42 183

原创 2019牛客多校训练营(第八场)———A

原题题址题目描述Gromah and LZR entered the great tomb, the first thing they see is a matrix of size n×mn\times mn×m, and the elements in the matrix are all 00_{}0​​ or 11_{}1​​.LZR finds a note board sayi...

2019-08-11 18:33:49 190

原创 方格取数

原题题址题目描述设有N*N的方格图(N ≤ 10,我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。如下图所示(见样例): 某人从图的左上角的A 点出发,可以向下行走,也可以向右走,直到到达右下角的B点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。此人从A点到B 点共走两次,试找出2条这样的路径,使得取得的数之和为最大。输入描述:输入的第一...

2019-08-11 11:07:52 487

原创 dijkstra——堆优化

在图的算法中我们有不少优秀的算法,今天来记录一下我最近看dijkstra的收获,有大佬发现不对的地方请指正。dijkstradijkstra是一种求解单源最短路径的算法,值得注意的是,它只能应用于边权非负的情况。dijkstra算法主要利用松弛操作来获取比当前更优的情况,多次操作后,获得最优解。松弛操作:我们定义目标点SSS到其他点XXX的最短距离为为disS−Xdis_{S-X}dis...

2019-08-02 23:38:31 1213

原创 2019牛客多校训练营(第四场)——K

原题题址题目描述300iq loves numbers who are multiple of 300.One day he got a string consisted of numbers. He wants to know how many substrings in the string are multiples of 300 when considered as decimal...

2019-07-31 14:15:45 216

原创 2019牛客多校训练营(第四场)——D

原题题址题目描述Doctor Elephant is testing his new program: output the bitwise or of the numbers inputed.He has decided to input several multiples of 3 and the output of the program should be his favorite ...

2019-07-31 13:25:49 226

原创 2019牛客多校训练营(第四场)——C

原题题址题目描述Your are given two sequences a1…na_{1 \dots n}a1…n​ and b1…nb_{1 \dots n}b1…n​ .You need to answermax⁡1≤l≤r≤n\displaystyle \max_{1 \le l \le r \le n}1≤l≤r≤nmax​{min(al…r)\{min(a_{l \dot...

2019-07-31 00:26:16 229

原创 2019牛客多校训练营(第四场)——A

原题题址题目描述A new city has just been built. There’re nn interesting places numbered by positive numbers from 1 to n.In order to save resources, only exactly n−1 roads are built to connect these nn inter...

2019-07-29 15:38:45 236

原创 2019牛客多校第二场F

题目描述Given 2N people, you need to assign each of them into either red team or white team such that each team consists of exactly N people and the total competitive value is maximized.Total competiti...

2019-07-24 22:02:38 180

原创 二分——教室管理

题目描述在大学期间,经常需要租借教室。大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室。教室的大小功能不同,借教室人的身份不同,借教室的手续也不一 样。面对海量租借教室的信息,我们自然希望编程解决这个问题。 < 我们需要处理接下来n天的借教室信息,其中第i天学校有ri个教室可供租借。共有m份订单,每份订单用三个正整数描述,分别为dj, sj, tj,表示...

2019-06-30 23:48:32 179

原创 数据结构题

原题题址题目描述水宝宝某天突发奇想,在纸上写了这样一个问题:给一个a数组,求∑∞i=1get(l,r,i)⋅∑∞i=1get(l1,r1,i),其中get(l,r,x)表示求a[l]~a[r]中x出现了几次,他很快推出了规律,但正当他把这道题录入电脑是发现作为一个蒟蒻的他不会打latex也没找到数学符号(主要是懒),所以他省略了那个∑式子,于是,题面变为了求get(l,r,x)*g...

2019-06-16 17:13:55 146

原创 希望

原题题址题目描述题目背景那一瞬间,一道白光闪过,从此大地上再也没有了丝毫的响动那是一个黑暗的晚上。新纪元59β年,23:13:56,这个悲惨的时刻。所有人都开始自相残杀,亲人、朋友,都是敌人。终有人类逃出了这片黑暗的天地,试图挽救这悲惨的未来。但是腐化生物的能力完全超出了人类的控制范围。勇者号的主控台与舰桥,人类最后与腐化生物抗衡的希望。很可惜,α计划失败了,腐化生物即将入侵...

2019-06-16 16:58:23 389

空空如也

空空如也

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

TA关注的人

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