江理oj 摸底测试
江理oj 摸底测试
�我在
这个作者很懒,什么都没留下…
展开
-
快速排序 以及数组第k大的应用
时间复杂度为:平均为nlog(n),最坏为n²,但很难达到最坏情况空间复杂度为:O(1),不需要辅助数组,归并排序需要一个O(n)的辅助数组快速排序第一种写法:#include<bits/stdc++.h>using namespace std;int n, a[100005];void quickSort(int *a, int l, int r){ if(l >= r) return ; int mid = a[(l+r)/2]; i原创 2021-10-17 11:17:58 · 97 阅读 · 0 评论 -
I 签到题 摸底测试
I 签到题摸底测试I题题意:如果从左往右和从右往左看是一样的,那么就是回文字符串。现在给你一个长度为n(1≤n≤10e5)字符串,你可以改变字符,但改变字符有如下的规则(按从下标0开始计算):1 将ai变成an−i−12 将an−i−1变成ai现在要你将给定的这个字符串变成回文字符串,并且字典序最小。题解:其实从前只要线性的比较一下前数的的某个和从后面数相同位置的字母的大小,然后都...原创 2019-11-30 16:44:15 · 179 阅读 · 0 评论 -
H: 地图 摸底测试
H: 地图摸底测试H题题意:两个大小相同的图,图上都有若干障碍,问是否存在一条一样的最短路径从左上角到右下角。题解:一道bfs的题,跑三次bfs,两个图分别跑一次,然后将两个图合起来,将它们的障碍点合起来,然后再跑一遍bfs,若三次均可以到达终点并且路径长度相同,即存在一条相同的最短路径。#include<bits/stdc++.h>using namespace std...原创 2019-11-30 15:54:49 · 200 阅读 · 0 评论 -
G: 聚会 摸底测试
G: 聚会摸底测试G题题意:有n个人,现在有一个聚会,每个人都可以选择参加或者不参加。而参加的人中每个人要么只去送礼物,要么只接受礼物。不存在全部都接受礼物或者全部都送礼物的情况(这样要么没人送礼物,要么没人接受礼物了)。问有多少中情况?题解:对于1个人和2个人先特判一下风别为1和3。其实就是求组合数,对于n>=3时,每次去的人数必定要>=2,并且每个人有送和不送两两种情况...原创 2019-11-30 15:47:30 · 274 阅读 · 0 评论 -
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 · 180 阅读 · 0 评论 -
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 · 163 阅读 · 0 评论 -
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 · 226 阅读 · 0 评论 -
B.Prime Split 摸底测试
B.Prime Split摸底测试B题题意:给一个整数n(1<=n<=4*10e4),将其分解成三个质数之和(算组合),问有多少种分法。题解:首先打表,将4*10e4内的所有质数从小到大预处理出来存在一个数组中,然后,对于每个n,先用两个for在小于n的所有质数中遍历第一个和第二个可能的质数,并且第二个不小于第一个,然后再用n减去第一个第二个可以得到第三个,并且第三个要满足不...原创 2019-11-30 13:54:14 · 202 阅读 · 0 评论 -
江理oj 摸底测试
A.water摸底测试A题题目大意:有n个杯子,并告诉每个杯子可以容纳的水量,之后有m次注水操作,对于每次注水操作告诉注水的杯子序号冰并且水量,当当前杯子满了之后并且还有水剩余的时候朝下一序号的杯子注水,直到没有水了,或者到了最后一个序号的杯子。题解:首先开个数组存下n个杯子的容量,再开一个数组,对于每次注水操作,将杯子序号为下标,存下每次的注水量,然后线性从第一个杯子开始,若要注水就判...原创 2019-11-30 13:39:21 · 390 阅读 · 0 评论