自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 Lex/YACC初步学习

查找资料的时候发现了一篇不错的入门博客,在此记录一下跳转

2022-05-09 20:19:16 231

原创 VSCode远程连接服务器开发+两次ssh

1.在VS code中,使用ctrl+shift+x快捷键打开插件搜索窗口,输入插件Remote Development,并点击安装。2.使用cmd+shift+p快捷键打开命令输入窗口,输入Remote-SSH:Connect to Host…,第一次使用时需要选择Add New SSH Host配置一下3.然后就照着如下格式输入登录服务器的命令:-A 表示开启认证代理连接转发功能4.输入完成后选择第一个配置文件:5.查看信息HostName:远程主机的IP地址User:远程主机的

2022-03-05 13:53:08 2918 1

原创 2021CCPC中国大学生程序设计竞赛女生专场 A. 公交线路

题目链接题目描述解题思路根据 m 前后遍历对比一下,判断正反两种顺序是不是都可以,如果都可以那就Unsure,否则如果正序符合,那就是Right,如果逆序符合,那就是Left,如果都不符合,那就是Wrong。代码#include<bits/stdc++.h>#include<stdio.h>#include<vector>#include<string>#include<algorithm>#include<map&gt

2021-11-05 23:33:11 350

原创 2021CCPC中国大学生程序设计竞赛女生专场 D. 修建道路

题目链接题目描述解题思路题目中 i-j 相连的费用是从i到j连续区间的最大费用,所以最小的总花费就是依次连接,两两取max值(因为如果要跨越多个点,假设是x1,x2,.....xmx_1,x_2,.....x_mx1​,x2​,.....xm​,那么这条道路的花费一定大于等于max(x1,x2)max(x_1,x_2)max(x1​,x2​),所以还不如就直接连接相邻的节点)代码#include<iostream>#include<stdio.h>#include&l

2021-11-05 23:20:19 361

原创 2021CCPC中国大学生程序设计竞赛女生专场 I. 驾驶卡丁车

题目链接题目描述解题思路大模拟题代码#include<iostream>#include<stdio.h>#include<vector>#include<string>#include<algorithm>#include<map>#include<queue>using namespace std;const int maxn = 1e5+7;const int mod = 1e9+7;

2021-11-05 23:04:06 304

原创 2021CCPC中国大学生程序设计竞赛女生专场 G. 3G网络

题目链接题目描述解题思路当 r->∞ 时,圆相当于几乎重合,所以答案是1/n代码#include<iostream>#include<stdio.h>#include<vector>#include<string>#include<algorithm>#include<map>#include<queue>using namespace std;const int maxn = 1e5+7;

2021-11-05 23:01:04 322

原创 2021CCPC中国大学生程序设计竞赛女生专场 K 音乐游戏

题目链接题目描述解题思路这是一个签到题,只要统计_的个数就行了代码:#include<iostream>#include<stdio.h>#include<vector>#include<string>#include<algorithm>#include<map>#include<queue>using namespace std;const int maxn = 1e5+7;const i

2021-11-05 22:56:05 2425

原创 Android Studio模拟器启动黑屏解决办法(附图详解)

问题描述打算启动模拟器测试App时,发现模拟器一直黑屏,不开机原因分析:android模拟器在创建时,一般默认设置为热启动,所以每次关闭模拟器时,会提示保存当前运行界面状态,若选择取消,则下一次启动会以最近一次保存的状态启动显示。如果某次关闭时保存的状态异常,在下一次启动时,可能存在黑屏解决方案1.点开模拟器2.选择黑屏的模拟器,点三角形,选择dupicate3.点击左下角show advanced settings4.找到boot option,选择cold boot5.然后f

2021-11-03 20:36:27 15960 9

原创 Ubuntu下Hadoop安装

参考链接老师给的教程是基于centOS的,但是我的虚拟机里面已经哟Ubuntu,就想在Ubuntu里面安装试试,一开始按照老师的步骤写,结果发现没有成功,只能自己查资料,配置。注意:1.在配置完hadoop安装包,并配置了Hadoop的环境变量后,还要加一步配置hadoop:sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh在文件中加入JDK的路径,告诉Hadoop哪里寻找JDK2.修改完配置文件~/.bashrc后,需要使新配置的环境变量

2021-10-26 13:31:39 261

原创 Codeforces Round #744 (Div. 3) D. Productive Meeting(贪心)

题目链接题目大意:n个人两两之间可以谈话,每个人的谈话次数为 aia_iai​ ,每和别人谈话一次,aia_iai​ 减一,当 aia_iai​ 为0时,他不能再和别人谈话。问你怎样分配谈话,使得总体的谈话次数最多,输出总次数,以及每次谈话的两个人的编号。解题思路:每一步直接让剩余谈话次数最多的和最少的交谈是最优的。每次找出最大的和最小的两个人,然后减一,如果还能和别人谈话,然后再放回,重新排序。注意:不要直接让他们俩一直交谈,直到一个人的次数用完,这样不是最优的!第三个例子就可以验证自然想

2021-10-05 18:20:21 118

原创 SqlServer2019安装教程-基本安装

转载这篇写得很详细,照着做就行了。数据库之旅开始

2021-10-03 11:08:15 169

原创 Codeforces Round #743 (Div. 2) C. Book

原题链接题目大意:一本书,看每个章节前必须要提前看某些章节才能看懂,询问需要看几遍,才能完全理解书。解题思路:比如:看第4章节之前,必须要先看1,2,3章节。很容易可以想到拓扑排序。在上面的例子中,只要按照 1,2,3,4,5,6 的顺序看完一遍就可以了。代码:#include <bits/stdc++.h>#include <iostream>#include <string.h>#include <algorithm>#defi

2021-09-22 09:28:41 78

原创 Codeforces Round #743 (Div. 2) B. Swaps

原题链接题目大意:给定两个数组 aaa 和 bbb ,aaa 数组是 1~2n 当中的所有 奇数 的一个排列,bbb 数组是1~2n当中 偶数 的一个排列,现在你可以做如下操作:选择两个序列中的任意一个选择一个位置 i(1≤i≤n−1)i(1≤i≤n-1)i(1≤i≤n−1),交换 iii 和 i+1i+1i+1 位置上的数字计算将 aaa 序列的第一个数小于 bbb 序列的第一个数的最少操作次数。1≤n≤1e51≤n≤1e51≤n≤1e5解题思路:有三种情况:第一种情况,只需要

2021-09-21 12:45:34 104

原创 Codeforces Round #742 (Div. 2) E. Non-Decreasing Dilemma(线段树)

题目链接题目大意:给你一个长度为nnn 的数组 aaa每次有两种操作1 x y:ax=y1 \ x \ y: a_x = y1 x y:ax​=y2 l r:询问区间[l,r]内有多少对(p,q),l≤p≤q≤r 满足子序列ap≤ap+1≤⋯≤aq2 \ l \ r:询问区间 [ l , r ] 内有多少对 (p, q), l \leq p \leq q \leq r \ 满足子序列 a_p \leq a_{p+1

2021-09-07 00:38:15 128

原创 Codeforces Round #742 (Div. 2) D. Expression Evaluation Error(思维)

题目链接题目大意:输入两个数字 sum,nsum,nsum,n ,让你构造 nnn 个数字,使得他们的十进制之和等于 sumsumsum ,11进制之和最大解题思路:根据进制的计算方法可知,其实就是每一位上的数字乘以进制的几次方,位数越高,值越大,所以就要在能凑够n个数字的前提下,是尽可能多的数字,位数多。代码中有步骤解释。代码:#include <bits/stdc++.h>#include <iostream>#include <string.h>

2021-09-06 23:37:18 89

原创 Codeforces Round #742 (Div. 2) C. Carrying Conundrum(思维)

题目链接题目大意:定义了一种新的加法进位的方式,给你一个数 nnn ,计算有多少组两个数之和等于 nnn 。解题思路:将 nnn 的奇偶位分开,变成两个数 num1,num2num1,num2num1,num2,因为奇偶位之间的进位并不影响。答案就是(num1+1)∗(num2+1)−2(num1+1)*(num2+1)-2(num1+1)∗(num2+1)−2代码:#include <bits/stdc++.h>#include <iostream>#inclu

2021-09-06 22:24:26 227 1

原创 Codeforces Round #742 (Div. 2) B. MEXor Mixup(异或性质)

题目链接题目大意:构造一个非负数的数组,使得数组中最小的不属于这个数组的非负数(MEX)为 aaa,数组中所有数的异或值等于 bbb,输出构造的这个数组的最短长度解题思路:根据第一个条件,很容易能够想到从 0~ (a−1)(a-1)(a−1) 构造,然后避免数组中出现 aaa 。假设前a项的异或值等于 sumsumsum如果 sum==bsum== bsum==b ,那么数组构造结束;如果不等于,就得再凑其他数,此时要知道异或的一个性质:A⊕B=C,则有A⊕C=B,B⊕C=AA \oplus

2021-09-06 22:05:15 99

原创 【C语言】用函数实现模块化程序设计

目录函数的介绍为什么要用函数样例程序1函数的定义函数的分类自定义函数的使用函数的组成定义函数的方法调用函数样例程序2函数递归例子解题思路代码函数调用过程递归经典问题函数的介绍为什么要用函数通过前面几章的学习,大家已经可以编写一些简单的C语言程序了,但是如果程序的功能比较多,规模比较大,或者程序多次调用某个功能,把所有的程序代码都写在一个主函数(main函数)中,就会使得主函数变得头绪不清,阅读和维护程序也变得很困难。所以,应该采用模块化程序设计的思路。一个C语言程序可由一个主函数(必须有)和若干个其

2021-08-13 14:49:40 1254 1

原创 【算法】FFT-快速傅里叶变换

目录FFT作用数学知识代码:例题1:多项式乘法例题2:大数相乘碎碎念:FFT作用FFT在算法竞赛中就有一个用途:加速多项式乘法多项式:形如 a0X0+a1X1+......+anXna_0X^0 +a_1X^1+......+a_nX^na0​X0+a1​X1+......+an​Xn 的代数表达式,可以记作f(X)=a0X0+a1X1+......+anXnf ( X ) =a_0X^0 +a_1X^1+......+a_nX^nf(X)=a0​X0+a1​X1+......+an​Xn,其中,a0

2021-08-12 16:41:27 946

原创 【算法】单源最短路径的Dijkstra、Bellman-Ford及Spfa算法对比及例题

目录Dijkstra例题:Bellman-FordSpfa碎碎念:Dijkstradijkstra算法本质上应该是贪心的思想。从初始节点开始,首先往队列中加入初始节点可以到达的节点的长度,选取最短的一条作为新的节点,然后用该节点更新到达剩余节点的距离,选取最短的距离…如此循环,直到所有点都被确定。此方法中,每次节点被选中,那么他到达起点的最短距离也就确定了,后续不会再更新了,因为你每一步取的都是当前最小的距离。dijkstra就是这样不断从剩余节点中拿出一个可以确定最短路径的节点,最终求得从起点到

2021-08-10 22:54:26 859

原创 【算法】扫描线

目录扫描线算法的思想:应用:面积相交面积周长窗口的星星碎碎念:扫描线算法的思想:扫描线算法是一种求矩形的面积并和周长并等的好方法。其思想是由一条假想的线从图形的左方扫向右方(或者下方扫到上方,都可以),那么通过分析扫描线被图形截得的线段就能获得所要的结果。该过程可以用线段树进行加速,记录截得的线段长度。感受一下应用:面积【ACWing】247. 亚特兰蒂斯——扫描线求面积相交面积【hdu】1255 覆盖的面积——扫描线求重叠面积和周长【hdu】1828 Picture —— 扫描线求周

2021-08-10 21:17:35 646

原创 【hdu】1828 Picture —— 扫描线求周长

原题链接目录题目:解题思路:代码:碎碎念:题目:解题思路:题目大意:给你n个边平行与坐标轴的矩形,矩形可能有重叠部分,问你所有矩形构成的图形的轮廓线多长(即外周长+内部中空的周长)错误想法:做了之前的求矩形面积和的问题,那么自然会想到每一根扫描线都用线段树维护了有效的长度,那么每一次都加上那个长度,先从左往右跑一边,再从上往下跑一遍,答案不就出来了?这真的对吗?答案是:错误的!题目只要求出轮廓线长度,如果那样算,结果比答案大很多,因为算了很多不必要的长度。正确做法:先考虑横边:观察下图中

2021-08-10 21:12:58 272

原创 【ACWing】248. 窗内的星星——扫描线

原题链接目录题目:解题思路:代码碎碎念题目:解题思路:设某颗星星的坐标为 (x,y)(x,y)(x,y) ,那么当窗户的右上角端点的坐标在 (x∼x+w−1,y∼y+h−1)(x\sim x+w-1 , y\sim y+h-1)(x∼x+w−1,y∼y+h−1) 这个范围内时,星星就会出现在窗户里。(因为题目中说边界的星星不算,所以长和宽都要减1)于是我们可以将每个星星都扩展成一个矩形,通过画图我们可以发现:若两个矩形之间有重叠部分,那么他们便可以放在同一个窗户中,那么这个窗户的亮度就是这两

2021-08-10 14:06:30 203

原创 【hdu】1255 覆盖的面积——扫描线求重叠面积和

原题链接目录题目:解题思路:代码:碎碎念:题目:解题思路:这题的思路和 【ACWing】247. 亚特兰蒂斯 的差不多,只不过线段树中需要多存储一个变量val2,记录区间内被覆盖2次及以上的线段的长度,在维护的时候,需要根据 cover 的值,分类讨论。当 cover=0 的时候,代表该区间没有被全部覆盖过,那么该区间的 val1,val2 的长度分别是各自左子区间和右子区间长度之和;当 cover>=2 的时候,代表该区间至少被完全覆盖了两次,那么 val1,val2 的长度都等于

2021-08-10 14:03:59 159

原创 【ACWing】247. 亚特兰蒂斯——扫描线求面积

原题链接目录题目:解题思路:代码:题目:解题思路:多个矩形的面积之和,那应该要去除掉重叠部分,我怎么知道哪些重合了呢?那就看最终所有矩形堆一起的状态,转化成了一个多边形的面积。根据初中的几何知识可以知道,要求一个多边形的面积,可以采取切割的办法。切割时,每一条分界线就可以看作是一条从左往右的扫描线。来模拟一下我们记录每一条竖直方向上的线段(一个含x坐标,下端y坐标y1,上端y坐标y2,加减的标记k的四元组(x,y1,y2,k))然后按照x坐标进行排序,从左往右扫描一遍。每一段矩形的宽

2021-08-10 13:18:37 298

原创 【算法】单调栈

目录单调栈的定义:伪代码:应用1.模板题2.视野总和问题3.柱状图中的最大矩形4.最大区间碎碎念:单调栈的定义:从名字上就能猜出来,这种数据结构在栈的基础上,栈内的元素是单调有序的,所以单调栈分为单调递增栈和单调递减栈(增减性的划分是根据栈顶到栈底的元素变化规律)(搞不懂为什么定义要从栈顶开始看,栈是从栈底开始加入元素的呀,好像有一点反思维)单调递增栈: 从栈顶往栈底看,是单调递增的关系(含相等)单调递减栈: 从栈顶往栈底看,是单调递减的关系(含相等)例子:现在有一组数:3,4,2,6,4,5

2021-08-05 23:16:41 6032 1

原创 【ACWing】245. 你能回答这些问题吗(线段树)

原题链接目录题目:输入输出样例:解题思路:代码:碎碎念:题目:输入输出样例:解题思路:单点修改和区间查询问题,而且数据是 5e55e^55e5 的,很自然想到了用线段树来维护。区间最大连续子段和=max(左子树的最大连续子段和,右子树的最大连续子段和)区间最大连续子段和=max(左子树的最大连续子段和,右子树的最大连续子段和)区间最大连续子段和=max(左子树的最大连续子段和,右子树的最大连续子段和)???这样想的话,那么遗漏了一种情况:左端点在左子树,右端点在右子树。所以,最终父节点的答案

2021-08-05 11:05:50 128

原创 Bin Packing Problem (线段树+multiset)

原题链接目录题目:输入输出样例:题目大意:解题思路:代码:碎碎念:题目:输入输出样例:题目大意:装箱问题。给你含有nnn个数字的一个数组,每个数字代表物品的重量,给你每个箱子的最大容量ccc。有两种装箱子的策略:1:首次适应算法:每次从前往后遍历每个已经开的箱子,如果可以放得下,那就放进去;如果都放不下,那就新开一个箱子。2:最佳适应算法:找到所有已经打开的箱子中可以放下这个物品的箱子中剩余容量最小的那个箱子。如果都放不下,那就新开一个箱子。求:分别运用两种算法,按顺序将所有物品装箱,至

2021-08-04 17:28:27 301

原创 【算法】莫队算法

文章目录莫队算法概述:算法过程:时间复杂度:例题:1.洛谷P2709 小B的询问代码思路:完整代码:2.HDU - 6959 zoto题目大意:代码思路:完整代码:莫队算法概述:莫队算法是由莫涛发明的算法,所以称为莫队算法。莫队算法是一个对于区间、树或其他结构离线(在线)维护的算法,此算法基于一些基本算法,例如暴力维护,树状数组,分块,最小曼哈顿距离生成树,对其进行糅合从而产生的算法其主要用来处理离线的区间问题,如区间和。看到这你会想到线段树,但是他与线段树相比,优点就是可以处理离散的信息,而且代码

2021-07-22 16:02:15 8546

原创 【2021牛客多校】第一场G-Game of Swapping Numbers

题目输入输出样例题目大意:对于数组大小为 n 的两个数组 a,b,在a上进行 k 次交换,使得 ∑i=1n∣ai−bi∣\sum_{i=1}^n{|a_i-b_i|}∑i=1n​∣ai​−bi​∣ 最大。其实对于绝对值计算,可以等价于为数字加上+,-的符号,例如:aia_iai​=3,bib_ibi​=1,则|ai−bia_i-b_iai​−bi​|=+3+(-1)。先不考虑 k 步交换操作。由于 a 数组时可以交换的,所以题目可以看作是给给 a,b 数组的所有数字分配正负符号,满足正负符号

2021-07-20 10:38:32 237

原创 【2021牛客多校】第2场 K-Stack

题目输入输出样例题目大意需要构造一个序列a1a_1a1​,a2a_2a2​,…,ana_nan​。aia_iai​入栈时,如果栈顶的元素比它大,则将栈顶元素弹出,直到栈为空或者栈顶元素小于等于它,此时记录栈的大小为bib_ibi​。题目给出n,k,代表需要构造的序列的长度和已知k个的b数组的值,接下来k行,分别给出两个数字p,q,代表bpb_pbp​=q,即apa_pap​按要求入栈后,栈的大小为q。题目思路最初的时候,我们认为bib_ibi​=x,就代表构造出的a序列中,在第i为前面,有x

2021-07-19 22:31:33 144

原创 【数据结构】二叉树

二叉树的定义及基本特点定义二叉树(Binary Tree)是n(n≥0)个结点所构成的集合,它或为空树(n = 0);或为非空树,对于非空树T:(1)有且仅有一个称之为根的结点 (2)除根结点以外的其余结点分为两个互不相交的子集T1和T2,分别称为T的左子树和右子树,且T1和T2本身又都是二叉树。基本特点结点的度小于等于2有序树(子树有序,不能颠倒)二叉树的性质在二叉树的第i层上至多有 2i−12^{i-1}2i−1 个结点深度为k的二叉树至多有2k−12^k -12k−1 个结点

2020-11-24 18:44:37 1090

原创 【数据结构】线性表(链表)

链表的表示和实现链表的定义链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。结点在存储器中的位置是任意的,即逻辑上相邻的数据元素在物理上不一定相邻链表的存储方法单链表循环链表双向链表优缺点数据元素的个数可以扩充;插入,删除等操作修改效率高;存储密度小;存取效率低,必须采取顺序存取,即按照链表顺序依次访问。与链式存储相关的术语头指针:指向链表中第一个结点的指针

2020-09-24 17:10:14 148

原创 【数据结构】线性表(顺序表)

线性表的定义和特点定义:用数据元素的有限序列表示,例如:a1,a2,a3…特点:线性表中数据元素之间的关系是一对一的关系除最后一个元素之外,均有唯一的后继(后件)除第一个元素之外,均有唯一的前驱(前件)线性表的类型顺序存储链式存储顺序表的表示和实现顺序存储定义把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构顺序存储方法用一组地址连续的存储单元依次存储线性表的元素,可通过数组V[n] 来实现优缺点存储密度大,可以随机存取表中任一元素,但是在做插入删除操作时

2020-09-24 16:42:47 260

原创 【C语言】实验整理

实验一题目:求1-1/2+1/3-1/4……+1/99-1/100之值。求出200到300之间的数,且满足条件:它们三个数字之积为42 ,三个数字之和为12。代码一#include<stdio.h>int main(){ int i,f=1; double sum=0; for(i=1;i<=100;i++) { sum+=f*1./i;//累加 ...

2019-12-22 20:12:16 1437

原创 【C语言】经典算法

我们来看一下我们这个学期学了什么经典算法:1、判断闰年2、最大公约数3、冒泡排序4、选择排序5、判断素数6、递归求阶乘判断闰年先来看一下我们的判断闰年,什么是闰年,能被4整除不能被100整除的是闰年,或者能被4整除并且能被400整除的也是闰年。这样看来,我们就只要if就够了,贴上代码;#include<stdio.h>int main(){ int n; pr...

2019-12-22 20:11:29 820

原创 【C语言】数据

文章目录一, 基本字符,标识符,关键字二,常量和变量一, 基本字符,标识符,关键字基本字符:数字0~9,大小写字母,标点符号,特殊字符(空格、换行、制表符(空白字符),起分隔作用)标识符:程序语言里各种对象的名字以字母或下划线“_”开头(“_”下划线看作是字母)的字母或数字组成的连续序列合法:f2048,sx211_12a,abc_…不合法:123X(不是字母开头), a b1(包...

2019-12-15 12:22:08 821

原创 互助成长之路正式开启~欢迎使用CSDN-markdown编辑器

互助成长之路正式开启~欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计...

2019-12-12 00:35:32 94

bjfu数据库期末复习资料

bjfu数据库期末复习资料

2022-02-28

空空如也

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

TA关注的人

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