自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 NoSQL 语句小结(上课自用)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录数据库操作建立数据库查看已有的数据库删除数据库(必须进入待删除的数据库当中)集合操作(必须进入待操作的数据库当中)建立集合查看所有集合删除集合数据操作插入数据插入集合插入数组(不是)/插入多条数据插入值中有“类”或数组补充更新数据命令参数基础语法修改数据增加值(加减)增加值(乘除)删除字段修改集合中的数组内的信息利用update实现插入操作利用update检错删除数据删除所有符合条件的数据删除一条符合条件的数据删除所有数据查询数据.

2022-03-08 16:36:37 2327

原创 力扣第261场周赛题解

2027 转换字符串的最少操作次数【贪心】因为对OOO操作没有意义,只会白白增加操作数,所以我们需要保证相邻的3个字符中至少有一个X,对于第一个X(假设在第i位),我们需要将其变为O(必定要操作),可以第从i - 2位、i - 1位、i位开始操作,如果我们从第i位开始,可以保证至少i + 2位没有X,且无后效性,所以我们每次取第一个X作为开始点,然后进行操作AC代码:class Solution {public: int minimumMoves(string s) {

2021-10-11 18:05:12 205

原创 力扣第260场周赛题解

题目一:2016. 增量元素之间的最大差值题目描述:首先分析一下数据范围,1000的数据可以n^2处理,最简单的一种方法是2个for去解决,保证第二个大于第一个,取个max即可.示例:for(int i = 1;i <= n;i ++) for(int j = i + 1;j <= n;j ++) if(num[j] > num[i]) ans = max(ans,num[j] - num[i]);我们发现位置上第二个恒大于第一个,每次都从头找一遍显然效率不

2021-10-11 17:08:51 723

原创 SDWU 2021 Autumn Training Series C1 2st Round

A. Football【题目大意】给你n个字符串,统计出现次数最多的字符串【思路】map计数,找到出现次数最多的字符串【参考代码】#include <bits/stdc++.h>using namespace std;map<string, int> ma;int n, ji;string s, lu;int main() { cin >> n; for (int i = 1; i <= n; i ++) { ci

2021-09-08 21:01:42 129

原创 SDWU 2021 Autumn Training Series C1 1st Round题解

A Blend of Springtime【题目大意】给定一个字符串,问是否存在3个相邻位置,使字母‘A’,‘B’,‘C’各出现1次,是的话输出Yes,否则输出No【思路】for一遍,看看是否存在这样的三个位置【方案一】//满足以下任意一种if(s[i - 1] == 'A'&&s[i] == 'B'&&s[i + 1] == 'C') else if(s[i - 1] == 'A'&&s[i] == 'C'&&s[i + 1] =

2021-08-31 21:51:52 125

原创 Swap(匈牙利算法)

第一轮C2组C题题目:输入输出:样例:【考察内容】匈牙利算法【难度】简单【题意】有一个只有0和1的矩阵,每次你可以交换某两行或某两列,问是否能使得主对角线全为1,如果能输出一种方案,否则输出-1【思路】通过交换使得主对角线全为1,假设某一个矩阵是可以通过交换实现的,则该矩阵一定有n个1满足每个1的行与列是不同的,只有这样才能使该矩阵通过交换实现主对角线全为1,若存在这样的n个1,则必然满足行与列的最大匹配为n,若能找到这样的矩阵,通过只交换行或者只交换列即可【实现代码】#includ

2021-08-08 12:06:40 132

原创 免费馅饼(棋盘dp)

第一轮C2组B题题目:输入输出:样例【考查内容】棋盘dp【难度】易【题意】众所周知,天上会掉馅饼(据说还很好吃),但是掉落的位置只有0~10,你的速度为每秒1格,且你的起始位置为5,每秒钟在某个位置会落下1个或多个馅饼,问你最多能接到多少个馅饼。【思路】把时间看做是层,每个位置在某个时间掉落的馅饼数记做数字,类似于数字三角形,但是由于刚开始有些位置跑不到即有些位置的数字是无效的,我们选择倒着跑,最后输出终点为5的路径【代码实现】#include<iostream>#in

2021-08-08 11:37:35 96

原创 Appeal to the Audience(吸引观众+贪心)

题目:输入输出样例【考察内容】贪心【难度】中等【题意】有n个人比赛,晋级图为某任意树形(根节点为冠军),每个人在初始时在一个叶子节点,每个选手有一个能力值,比赛时的精彩程度等于本场比赛的各选手能力值之和,求最大的精彩程度。【思路】每个人最少打一场比赛,答案至少为sum(全体),去掉所有叶子节点后,产生的新的叶子节点为能够参加第二场比赛的人数,假设还剩下t人,则最大值为sum(前t大),其中前t大的数可以用前缀和去求,快速找到叶子节点可以用堆实现。【代码实现】#include<bi

2021-08-08 10:57:40 267

原创 高精度乘法

题目:给定两个正整数 A 和 B,请你计算 A×B 的值。输入格式共两行,第一行包含整数 A,第二行包含整数 B。输出格式共一行,包含 A×B 的值。数据范围1 ≤ A的长度 ≤ 100000,0 ≤ B ≤ 10000输入样例:23输出样例:6#include<bits/stdc++.h>using namespace std;const int N = 1e5 + 5;string s1,s2;int a[N],b[N],c[N];int n,len1,

2021-08-06 11:10:08 60

原创 高精度减法

题目:给定两个正整数,计算它们的差,计算结果可能为负数。输入格式:共两行,每行包含一个整数。输出格式:共一行,包含所求的差。数据范围:1 ≤ 整数长度 ≤ 10^5输入样例:3211输出样例:21#include<bits/stdc++.h>using namespace std;const int N = 1e6 + 5;string s1,s2;int a[N],b[N],c[N];int n,len1,len2,len3;void add(int a[

2021-08-06 11:08:44 73

原创 高精度加法

题目:给定两个正整数,计算它们的和。输入格式:共两行,每行包含一个整数。输出格式:共一行,包含所求的和。数据范围:1 ≤ 整数长度 ≤ 100000输入样例:1223输出样例:35#include<bits/stdc++.h>using namespace std;const int N = 1e5 + 5;string s1,s2;int a[N],b[N],c[N];int n,len1,len2,len3;void add(int a[],int b[

2021-08-06 11:07:04 58

原创 归并排序求逆序对

题目:给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。输入格式:第一行包含整数 n,表示数列的长度。第二行包含 n 个整数,表示整个数列。输出格式:输出一个整数,表示逆序对的个数。数据范围:1 ≤ n ≤ 100000输入样例:62 3 4 5 6 1输出样例:5#include<bits/stdc++.h>usi

2021-08-06 10:58:36 424

原创 归并排序(手写)

题目:给定你一个长度为 n 的整数数列。请你使用归并排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式:输入共两行,第一行包含整数 n。第二行包含 n 个整数(所有整数均在 1∼109 范围内),表示整个数列。输出格式:输出共一行,包含 n 个整数,表示排好序的数列。数据范围1 ≤ n≤ 100000输入样例:53 1 2 4 5输出样例:1 2 3 4 5#include<bits/stdc++.h>using namespace std

2021-08-06 10:53:18 403

原创 第k个数(快排)

题目:给定一个长度为nn的整数数列,以及一个整数k,请用快速选择算法求出数列从小到大排序后的第k个数。输入格式:第一行包含两个整数n和k。第二行包含n个整数(所有整数均在1∼10^9范围内),表示整数数列。输出格式:输出一个整数,表示数列的第k小数。数据范围:1≤n≤1000001≤k≤n输入样例:5 32 4 1 5 3输出样例:3#include<bits/stdc++.h> using nam...

2021-08-06 10:48:30 150

原创 快速排序(手写)

准备开始学习了,先过来水几篇博客庆祝庆祝。###题目大意给定你一个长度为n的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。输入格式输入共两行,第一行包含整数n。第二行包含n个整数(所有整数均在1∼10^9范围内),表示整个数列。输出格式输出共一行,包含nn个整数,表示排好序的数列。数据范围1≤n≤100000输入样例:53 1 2 4 5输出样例:1 2 3 4 5...

2021-08-06 10:43:56 83

原创 归并排序

在开始今天的问题之前,我们先来想一个问题:如何将2个有序的数组合并成一个有序的数组如下图方法很简单,我们各自对最小值比较然后被取的数组移动到下一个比较,我们先比较1和4,然后1最小,指针后移,在比较2和4……直到将一个数组比较完。将另一个数组直接放在后面即可。第一步:第二步:第n步:第n+1步:综上所述:我们将2个有序的数组合并为1个有序数组的时间复杂度为O(n)那么,假设刚开始的时候,我们认为每个数自己就是一个有序是数组,然后两两合并(时间复杂度为O(n)的,因为每个数只比较了

2021-01-15 15:35:53 86

原创 洛谷 P3373 【模板】线段树 2

重温一下线段树,听说蓝桥杯线段树考的比较多,过来复习一下,一个线段树的板子题。题目大意:支持区间加、区间乘、区间查询要求时间复杂度为nlog(n)级别显然线段树(树状数组忘记怎么写了QAQ~ )如果只有区间加法或者只有区间乘法,本题将直接做标记,下放标记即可,单次修改或查询最坏情况下时间复杂度为树的高度,即:log(n),总体的时间复杂度为mlog(n)而本题有加法和乘法两种标记,所以本题的核心就是怎么处理加法和乘法标记的关系如上图,可以解读为:(x+3)* 5 ------------

2020-09-22 16:40:49 129

原创 数据结构学习

如何采用计算机解决问题?(1) 从具体问题抽象出一个适当的数学模型;(2) 设计解此数学模型的算法;(3) 编程,测试、调整直至得到最终解答。寻求数学模型的实质:分析问题,从中提取操作的对象,并找出这些操作对象之间含有的关系,然后用数学的语言加以描述数据结构解决什么样的问题?数据结构研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。数据结构是介于数学、...

2020-02-24 09:51:09 664

原创 字母旋转方阵

分析一下问题我们需要以旋转的方式进行填写,先假设我们已经有了一张空白的二维数组,下面我们要往里面进行填数,但是我们会发现一个问题,我们填数的方式不同于以往的按照行,列依次填写,我们会往上、下、左、右四个不同的方向前进填写。我们可以考虑写一些if判断我们要往哪个方向前进比如:if(我上一步是往右,我现在还能往右)我往右填写if(我上一步往右,下一步不能往右)我改成往下写这样我们的问题就...

2019-12-01 19:13:42 1365

原创 数位dp裸题的套路

首先根据题目的要求初始化一般为:for(int i = 0;i <= 1;i ++) dp[1][i] = 1;for(int i = 1;i <= 最大数的位数;i ++) for(int j = 0;j <= 9;j ++) for(int k = 0;k <= 9;k ++) if(......)//题目要求 d

2017-11-04 10:23:40 332

原创 石子合并与乘积最大之区别

我们在做石子归并时,会枚举区间(包括起点和终点),枚举断点。O(n^3)因为合并的顺序不同会产生不同的结果,所以石子归并不能规定最后一个合并的对象,故枚举断点,将左边合并的结果与右边合并的结果合并完了以后,再将我们所枚举的断点作为最后一个合并的对象。而且我们合并的时候,需要右边的合并结果。所以我们要把右边的小区间先处理掉。处理的方法一般有两种:1 :枚举起点时倒着枚举,确保右边的区间是处理完的。2

2017-11-04 09:57:33 309

原创 考试小总结

一 :一定要读准题!!!或许因为太过紧张,抑或题目太简单,往往读题时就会大意,漏掉关键条件,甚至与题意背道相驰。一味的强迫自己一定要读题或许有用,但往往使自己陷入莫名的紧张中,考试的时候如果紧张就很难考出应有的水平。所以,我们应当在平时就养成一种习惯,如:将题目中的关键字或需要注意的地方写在纸上,时常看一下。再读一遍题,确认自己的理解没有错误一般就可以了。二 :有一种东西叫概率。当正解无法想出来,甚

2017-11-04 08:21:23 257

原创 洛谷P1979 华容道(dfs)

由于不太会打bfs,这题用的dfs。通过这道题还是学到了蛮多的东西的。首先,瞎打一气(dfs + 标记走过的点)40分。 代码如下:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int X[] = {0,1,0,-1};const int Y

2017-10-30 19:12:10 693

原创 引水入城(dfs的做法)洛谷p1514

在这道题中, 由于每个点所能到达的地方是一定的,并且若底层能够填满,那么到达底层的位置一定 所以我们可以把每个点所到达的最底层记录下来,若访问到某一之前到达过的点,直接用这个点所到达的底层的点更新即可。 这样每个点我们只会访问一次,时间复杂度是O(n^2)的。 然后我们就得到了最上层能够到达下层的范围,这样,就可以抽象成为线段覆盖,然后我们用尽可能少的线段填满这个数轴,具体做法是先将线段从小

2017-10-21 15:53:26 246

原创 洛谷 1456 隐藏口令 (链表/队列优化)

ps:洛谷题解里有O(n)的dp,这里就不再赘述了。我们先来看一下这道题,我们的任务是从从一堆字符串中选出一个序列,使其字典序最小,很明显我们要找以最小的字母打头的序列,如果有多个我们再继续比对下一位。直到只剩下一个最小的字母,这就是我们的思路。但是当我们遇到 aaaaaaaaaaaaaaaaaaaaaaaaaaab…… or abcabcabcabcabcabcab

2017-10-19 09:06:13 289

原创 n皇后的二进制做法

ps:其实只能跑到14; 引用一张图片: 对于某一个放上皇后的点来说,其对于下几行的影响为其所在的列及其(前后列)*向下的行数;#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;int n,t,ans;void dfs(

2017-10-10 20:31:54 516 2

原创 5101 [JL] NOIP普及组模拟题3:全排列扩展版

超空间,求原因 明明什么只有几个全局变量,而且没有调用函数,为什么MLE#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;short n,num[10],used,x=1,a[10],c,i,ji;void dfs(){ st: if(x

2017-09-28 19:01:10 246

原创 codevs 1966 乘法游戏

有时候错误比正确更有价值。说一说我的错误,我先是分了四种情况: ①dp[i][k] + dp[k+1][j]/num[k]*num[i-1], ②dp[i][k-1]/num[k]*num[j+1] + dp[k][j]), ③dp[k+1][j] + dp[i][k]/num[k+1]*num[j+1], ④dp[k][j]/num[k-1]*num[i-1] +

2017-09-28 13:24:00 233

原创 树剖指针版lca之小机房的树

题目>>http://codevs.cn/problem/2370/ 变量名及其他参照:http://blog.csdn.net/qq_36519085/article/details/77187441#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using nam

2017-09-28 09:33:05 168

原创 混合背包

http://codevs.cn/problem/3269/#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,m,dp[200005],v[200005],w[200005],num[200005];int main(){ scanf("

2017-09-27 21:15:01 164

原创 洛谷 P3390 【模板】矩阵快速幂

题目>>https://www.luogu.org/problem/show?pid=3390#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;long long num[105][105],l,ji[105][105],ji2[105][105];int n

2017-09-02 14:48:42 193

原创 洛谷【p1149】火柴棒等式(完全递归)

题目>>https://www.luogu.org/problem/show?pid=1149#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int num[11] = {6,2,5,5,4,5,6,3,7,6},n,ans = 0;int find(int

2017-09-02 09:25:03 865

原创 没有上司的舞会(树形dp裸题)

题目 >>http://codevs.cn/problem/1380/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int MAXN = 2e5;bool used[MAXN];int n,a,b,num[MAXN],s,firs[MAXN]

2017-08-20 14:52:44 324

原创 同余方程

题目>>http://codevs.cn/problem/1200/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;typedef long long ll;ll a,b,x,y,r,d;int exgcd(ll a,ll b,ll &x,ll &y){

2017-08-20 14:50:41 246

原创 埃筛(区间筛)

题目>>http://codevs.cn/problem/3223/#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;const int MAXN = 3e6;ll p[MAXN],l

2017-08-20 14:47:53 492

原创 树状数组求逆序对

题目>>http://codevs.cn/problem/1688/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int MAXN = 1e6 + 5;long long tree[MAXN],n,a,ans = 0;void add(lon

2017-08-20 14:45:01 176

原创 【玉蟾宫】codevs 2491

题目>>http://codevs.cn/problem/2491/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int m,n,map[1005][1005],dp[1005][1005],h,ans = 0;char s[233];int main(

2017-08-20 14:43:44 251

原创 【codevs 4543】普通平衡树

题目>>http://codevs.cn/problem/4543/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int MAXN = 1e6 + 5;int son[MAXN][2],fa[MAXN],sz[MAXN],cnt[MAXN],k

2017-08-20 14:41:21 214

原创 洛谷 P3384 【模板】树链剖分(指针版)

题目>>https://www.luogu.org/problem/show?pid=3384#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;typedef long long ll;const int MAXN = 1e6 + 5;ll n,a,b,c,

2017-08-19 16:17:59 201

原创 树的统计(树剖)指针版

题目>>http://codevs.cn/problem/2460/#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>using namespace std;const int MAXN = 1e6 + 5;typedef long long ll;ll n,a,b,num[MAXN],q,fir

2017-08-18 08:38:56 164

空空如也

空空如也

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

TA关注的人

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