自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ACM 基本排序算法,归并排序(求逆序对)

归并排序主要运用到的的思想:分治、递归功能:1.数组进行排序。   2.计算数组中的逆序对的个数。时间复杂度:稳定的O(nlogn)空间复杂度:O(n)附上模板代码:#include<bits/stdc++.h>using namespace std;long long Merge(int a[],int b[],int s,int m,int e){ int i=s,j=m+1,k=s; long long ans=0; while(i<=m &

2020-09-29 12:26:55 33

原创 C++ STL is_sorted() 判断排好序

C++ STL is_sorted() 判断排好序用法:头文件algorithm使用方法同 sort()返回值 为bool,已经排好了则返回true,否则false

2020-06-08 20:24:39 122

原创 c++ STL 随机打乱数组 random_shuffle()

c++ STL 随机打乱数组 random_shuffle()使用方法:头文件:algorithm使用:要打乱的数组(容器)的起始地址和结束地址:random_shuffle( begin , end)复杂度:O(n)将数组元素打乱,但每次都是同一种打乱顺序(伪打乱),若要每次都打乱的不同则需更改随机种子,看代码:#include<algorithm>#include<cstdio>#include<ctime>using namespace std

2020-05-26 21:47:13 591

原创 c++ STL 区间第k大 nth_element()

c++ STL 区间第k大 nth_element()使用方法:头文件:algorithm使用:三个参数,数组(容器)要操作区间的起始地址、第k个、数组(容器)要操作区间的结束地址nth_element( begin , begin + (k-1) , end) (起始为0,所以为k-1)在使用该函数后,数组(容器)操作区间的第 k个元素则为第k大的元素,两边元素的顺序可能会不同,但它左边的元素都比它大,而右边的元素都比它小#include<algorithm>#include

2020-05-26 20:58:58 111

原创 c++ STL partial_sort() 部分排序

STL partial_sort() 部分排序使用背景:对于一个长度较大的数组,如果我们要想知道该数组的前m个小的元素是什么,我们可以对整个数数进行排序,然后取前m个,例如在长度为10w的数组中,找出前50个小的数,这样就比较费时,显得杀鸡用牛刀这时我们可以使用STL 中的 partial_sort()函数 解决这个问题使用方法:头文件,algorithm使用方法:在数组(容器)的 指定区间 begin位置 ~end位置(操作区间),找出前m个小的数 :** partial_sort ( be

2020-05-26 17:37:48 126

原创 ACM ios::sync_with_stdio(false)和scanf

为了使cin和cout在读入的时候会更快,可以加上这个ios::sync_with_stdio(false),不过加上之后就不要cin和scanf混用了,否则在容易在oj上wa,可能会造成scanf无法读取的问题。写题的时候,对于同样的样例输入,本地可以正确出结果,但是在oj上就无法正确读取了。...

2020-03-22 22:50:58 63

原创 c++ STL全排列:next_permutation()函数

关于next_permutation(being,end)在写洛谷题时,使用到的一个库函数,在求全排列的时候可以用到用处:对于一个数组,求此比目前数组字典序更大的下一个全排列参数用法和sort相似,两个参数分别为数组开始和结束位置附上练习:P1706 全排列问题P1088 火星人#include<bits/stdc++.h>using namespace std;in...

2020-03-15 18:38:07 34

原创 I 签到题 摸底测试

I 签到题摸底测试I题题意:如果从左往右和从右往左看是一样的,那么就是回文字符串。现在给你一个长度为n(1≤n≤10e5)字符串,你可以改变字符,但改变字符有如下的规则(按从下标0开始计算):1 将ai变成an−i−12 将an−i−1变成ai现在要你将给定的这个字符串变成回文字符串,并且字典序最小。题解:其实从前只要线性的比较一下前数的的某个和从后面数相同位置的字母的大小,然后都...

2019-11-30 16:44:15 68

原创 H: 地图 摸底测试

H: 地图摸底测试H题题意:两个大小相同的图,图上都有若干障碍,问是否存在一条一样的最短路径从左上角到右下角。题解:一道bfs的题,跑三次bfs,两个图分别跑一次,然后将两个图合起来,将它们的障碍点合起来,然后再跑一遍bfs,若三次均可以到达终点并且路径长度相同,即存在一条相同的最短路径。#include<bits/stdc++.h>using namespace std...

2019-11-30 15:54:49 45

原创 G: 聚会 摸底测试

G: 聚会摸底测试G题题意:有n个人,现在有一个聚会,每个人都可以选择参加或者不参加。而参加的人中每个人要么只去送礼物,要么只接受礼物。不存在全部都接受礼物或者全部都送礼物的情况(这样要么没人送礼物,要么没人接受礼物了)。问有多少中情况?题解:对于1个人和2个人先特判一下风别为1和3。其实就是求组合数,对于n>=3时,每次去的人数必定要>=2,并且每个人有送和不送两两种情况...

2019-11-30 15:47:30 65

原创 F: 操作数 摸底测试

F: 操作数摸底测试F题题意:有n个数初始时都是0,m次操作,共有两种操作,1.输入L和R将[L,R]区间内的数反转,将1变成0,0变成12.输入X,查询第x个数是0还是1题解:一道线段树的题,根据题意,因为每个数初始化为0,所以可以不用建树这个操作,只需要一个懒惰标记数组就可以了,对于每次反转,只需将这个区间标记一次,然后对于每次查询,只需判断每个数被标记过几次,当被标记的此时为...

2019-11-30 15:10:06 67

原创 E: Number 摸底测试

E: Number摸底测试E题题意:给一个整数n(5<=n<=59),求1/n mod x,其中x为将n分解若干个正整数然后使得乘积最大的那个积。题解:求n逆元!首先要将x给算出来,有两种方法:1.直接套公式:当n=3k,k>1的时候,最大的积是3^k当n=3k+1,k>1的时候,最大的积是3^(k-1)4当n=3k+2,k>1的时候,最大的积是...

2019-11-30 14:44:21 26

原创 C: connnect 摸底测试

C: connnect摸底测试c题题意:给n个点,并且每个点有三个值,x,y,z,连接两点u,v之间的花费为MIN(|Xu−Xv|,|Yu−Yv|,|Zu−Zv|) ,求将n个点连起来的最小花费为多少。题解:其实就是一道最小生成树的题,用kluscal算法来做,和普通的最小生成树的差别在于任意两点之间有三个距离值,在用kluscal之前要先处理一下两点之间的距离。首先想想kluscal...

2019-11-30 14:11:25 61

原创 B.Prime Split 摸底测试

B.Prime Split摸底测试B题题意:给一个整数n(1<=n<=4*10e4),将其分解成三个质数之和(算组合),问有多少种分法。题解:首先打表,将4*10e4内的所有质数从小到大预处理出来存在一个数组中,然后,对于每个n,先用两个for在小于n的所有质数中遍历第一个和第二个可能的质数,并且第二个不小于第一个,然后再用n减去第一个第二个可以得到第三个,并且第三个要满足不...

2019-11-30 13:54:14 62

原创 江理oj 摸底测试

A.water摸底测试A题题目大意:有n个杯子,并告诉每个杯子可以容纳的水量,之后有m次注水操作,对于每次注水操作告诉注水的杯子序号冰并且水量,当当前杯子满了之后并且还有水剩余的时候朝下一序号的杯子注水,直到没有水了,或者到了最后一个序号的杯子。题解:首先开个数组存下n个杯子的容量,再开一个数组,对于每次注水操作,将杯子序号为下标,存下每次的注水量,然后线性从第一个杯子开始,若要注水就判...

2019-11-30 13:39:21 74

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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