- 博客(28)
- 收藏
- 关注
原创 c++ 机房预约系统
学生属于用户,他们可以使用机房预约系统为自己在机房中预约位置,既然他们要为自己预约位置,那么他们就要查看机房信息,查看自己的预约,而且还能够取消自己的预约。其中有三种身份:1.学生,2,老师,3,管理员,在此三种人物类的继承之下,我们设立一个基类(Person),我们将他们的共同属性放到基类中,比如 ID,姓名,密码。鉴于我们上面提到的类,我们将会使用五个文件,分别是,学生账号文件,教师账户文件,管理员账户文件,预约信息文件,机房信息文件。实现专门访问预约信息的头文件。实现机房机房信息头文件。
2023-07-22 17:21:10
332
原创 最大异或和 Trie 字典树
给定一个非负整数数列 a,初始长度为 N。请在所有长度不超过 M 的子数组中,找出子数组异或和的最大值。子数组的异或和即为子数组中所有元素按位异或得到的结果。注意:子数组可以为空。输入格式第一行包含两个整数 N,M,。第二行包含 N个整数,其中第 i个为 ai。输出格式输出可以得到的子数组异或和的最大值。数据范围对于 20% 的数据,1≤M≤N≤100对于 50% 的数据,1≤M≤N≤1000对于 100% 的数据,1≤M≤N≤1e5,0≤ai≤2^31−13 21 2 4。
2023-06-02 16:15:10
450
原创 二进制问题
例如:n转二进制为【11001】,若当前遍历到下标1也就是第二个1,那么如果将当前填0,后面的两个1无论怎么填都不为过,比如【10101】【10011】...之类的。填0,那么就要在后面找够剩下的1,此时就可以使用组合了,因为当前位本是1,现在填了0,那么后面无论怎么填都不会大于n。对于 60% 的评测用例,1≤N≤2×1e9,1≤K≤30。对于 30% 的评测用例,1≤N≤1e6,1≤K≤10。填1,那么此时剩余的1就少了一个,因为我们用了一个1。对于所有评测用例,1≤N≤1e18,1≤K≤50。
2023-05-19 10:17:08
214
原创 冰山 蓝桥杯国赛全真模拟测试卷(上)
随着气温的变化,冰山的体积可能增大或缩小。我们将使用两个字典 倒腾着弄,例如a={1:3,3:2} b={},xi=2,yi=5, 然后遍历a中的key,每便利一个就加xi,然后插入字典b,最后将yi也插入字典b。如果第 i 天某座冰山 j 的体积变化后 Vj 大于 k,则它会分裂成一个体积为 k 的冰山和 Vj−k 座体积为 11 的冰山。如果将所有冰山的体积放入一个列表,那么每天的操作就是给所有冰山增加xi,然后插入一个新冰山yi,然后求一下总和sum,这样做的时间复杂度是O(n)的。
2023-05-08 18:18:15
265
原创 123 蓝桥杯国赛全真模拟测试卷(上)
想要了解其它题目请点击小蓝发现了一个有趣的数列,这个数列的前几项如下:小蓝发现,这个数列前 11 项是整数 11,接下来 22 项是整数 11 至 22,接下来 33 项是整数 11 至 33,接下来 44 项是整数 11 至 4,依次类推。小蓝想知道,这个数列中,连续一段的和是多少。
2023-05-06 17:51:43
240
原创 和与乘积 蓝桥杯国赛全真模拟测试卷(上)
给定一个数列 A=(a1,a2,⋯,an),问有多少个区间 [L,R] 满足区间内元素的乘积等于他们的和,即⋅aL+1⋯aR=aL+aL+1+⋯+aR。
2023-05-06 15:21:38
139
原创 巧克力 蓝桥杯国赛全真模拟测试卷(上)
小蓝很喜欢吃巧克力,他每天都要吃一块巧克力。一天小蓝到超市想买一些巧克力。超市的货架上有很多种巧克力,每种巧克力有自己的价格、数量和剩余的保质期天数,小蓝只吃没过保质期的巧克力,请问小蓝最少花多少钱能买到让自己吃 �x 天的巧克力。
2023-05-05 16:27:39
195
原创 本质上升子序列 蓝桥杯国赛全真模拟测试卷(上)
小蓝特别喜欢单调递增的事物。在一个字符串中,如果取出若干个字符,将这些字符按照在字符串中的顺序排列后是单调递增的,则成为这个字符串中的一个单调递增子序列。例如,在字符串lanqiao中,如果取出字符n和q,则nq组成一个单调递增子序列。类似的单调递增子序列还有lnq、i、ano等等。小蓝发现,有些子序列虽然位置不同,但是字符序列是一样的,例如取第二个字符和最后一个字符可以取到ao,取最后两个字符也可以取到ao。小蓝认为他们并没有本质不同。对于一个字符串,小蓝想知道,本质不同的递增子序列有多少个?
2023-05-05 16:12:20
101
原创 《2022》 蓝桥杯国赛全真模拟测试卷(上)
对于以上两点,我们可以想象一个循环,从1到n,每次循环到x,我们就只能使用x,而且我们的行要从下往上走,因为第i行要调用第i-1行,这样在第i行使用x的时候,i-1行还没有x,这样就不会出现重复的x了,而且由于我们的x始终作为结尾数字,也就不会出现对同一种方案的不同顺序了。注意交换顺序视为同一种方法, 例如 2022=1000+10222022=1000+1022 和 2022=2022= 1022+10001022+1000 就视为同一种方法。dp[i][j]:将j拆分为i个正整数,有几种方案,
2023-05-05 15:31:29
234
原创 答疑 蓝桥杯国赛全真模拟测试卷(上)
需要注意,一定是三项之和,例如 A:100,200,300 B:200,300,1000,。首先这个题的时间是以毫秒为单位的,我们要让各个学生发信息的时刻之和最小,就要让三项(进场时间,答疑时间,退场时间)之和,按递增排序,因为前面的同学耗费的时间越久,后面的同学发消息的时刻就越往后。答疑从 00 时刻开始。老师想合理的安排答疑的顺序,使得同学们在课程群 里面发消息的时刻之和最小。老师可以安排答疑的顺序,同学们要依次进入老师办公室答疑。输出一个整数,表示同学们在课程群里面发消息的时刻之和最小是多少。
2023-05-05 15:10:56
174
原创 KMP
KMP的设计之初是为了实现在一个大字符串A中找出一个某个小字符串a例(1):在'deabcfgabcabcd' 中找出‘abcabc’如果纯暴力的话 时间复杂度为O(n^2)
2023-04-20 15:51:35
116
原创 我在哪?(二分)
二分的基础题(可去上面的网址查找),这一题可以让人对二分的运用有更深的了解题目要求:给定一个字符串,找一个尽量小的长度k,使得任意长度为k的子串都是唯一的例:’abcabcd‘长度为1:有两个‘a' 不行长度为2:有两个 ’ab' 不行长度为3:有两个 ‘abc’ 不行长度为四可以。
2023-04-14 15:24:37
112
原创 二分查找数的范围
若取(l+r+1)//2,那么就要用l=mid,r=mid-1。总共要进行两次二分查找,找左边界时,最终状态为:自l向左不包括l都是小于k的,自r向右包括r。想象我们的l和r,若取(l+r)//2,那么就要用 l=mid+1,r=mid。衔接二分的第一题(可去上面的网址查找),这一题正是第1题的两个公式的运用。
2023-04-14 14:55:56
158
原创 2022年第十三届蓝桥杯 python B组 第H题 技能升级
这道题刚开始以为挺简单的,直接暴力,每次选最大的,发现只能过极少的案例,后来想了很久,才想到用单调栈加二分,如果有大神知道更好的做法,恳请留言。###########基础知识1.单调栈2.二分法#################对于直接暴力的解法其时间复杂度肯定是O(n*m)的,后来我想到用二分法对技能表进行从大到小的排序,每次选下标【0】的元素来用,用完后威力减去对应值(Ai-Bi),再用二分法插到相应位置,时间复杂度为O(m*logn),发现还是慢了!。再后来我想到其实技能表在一
2022-05-22 17:28:45
779
原创 2022年第十三届蓝桥杯 python B组 第B题 寻找整数
刚拿到这个题时用了很多方法,但都会花费大量的时间,后来我去补习了关于余数的知识——《中国剩余定理》##好像是小学数学知识。。## 终于做出了该题。#######常识1,首先我们要加深对余数的理解,其实余数就是分组,就是把‘被除数’,按每‘除数’为一组进行分组,剩余的就是余数。2,我们知道其实只需要保留所有的质素(素数)就可以了,因为非质数肯定有一个质素因子,只要符合这个质素因子的条件,自然就符合这个非质数的条件了,如 %2=1与%8=1,再如%7=4 与 %14=113.一堆质数的最小公倍数
2022-05-21 14:28:24
3291
5
原创 2022年第十三届蓝桥杯 python B组 第I题 最长不下降子序列
由于在csdn上发现的各种大佬写的题解在测试网站中都是错的或者最多跑n<100的案例,所以我只能自己研究该题,在苦苦思索多日后我终于有了一套自己的方法,在测试网站中可以通过n大于上千的案例,但仍然过不了上万的案例,如果有大佬知道更好的办法,请在评论区留言。其实这道题有一个更简单的版本,在左程云写的《程序员代码面试指南》——最长递增子序列我在简单描述这本书中的这个题之前,我们应该先明确什么是子序列,子序列就是一个序列中抽出来的(未必连续),如 1 4 2 8 5 中子序列有:1 4 8,1 4
2022-05-08 20:35:01
3853
14
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人