- 博客(114)
- 收藏
- 关注
原创 企业员工登记管理系统(QT+Netty开发)
Spring + Netty 构建服务端,Qt 开发客户端,MySQL 存储数据开发的企业员工登记管理系统
2025-01-07 15:12:49
976
原创 I/O完成端口模型
I/O 操作的完成通知” 的意思是当 I/O 操作(如读取文件、接收网络数据等)完成之后,系统会发出一个通知信息。这个函数会阻塞直到有一个 I/O 操作完成,并将完成的信息填充到相应的变量中,包括传输的字节数dwTrans、与套接字相关的结构体指针pPerHandle和与 I/O 操作相关的结构体指针pPerIO。是将 I/O 操作的完成通知与线程的分配和管理进行有效的分离,以实现高效的并发处理。byte err;//大于0:成功, 小于0:失败。byte len;byte len;
2024-10-07 11:56:33
1143
原创 基于TCPUDP的简单客户端和服务端通讯程序
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于流的通信协议。它是互联网协议栈(TCP/IP)中的核心协议之一,主要用于保证在计算机网络中可靠地传输数据。TCP通信的基本特点:面向连接:在发送数据之前,TCP要求通信双方(客户端和服务器)首先建立一个连接,这个过程被称为“三次握手”。连接建立后,数据才可以传输;数据传输完成后,需要释放连接(通过“四次挥手”关闭连接)。可靠传输:TCP保证数据包的正确传输。
2024-09-22 12:14:34
1314
原创 蓝桥杯真题-第39级台阶
先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。那么,上完39级台阶,有多少种不同的上法呢?首先我的函数void dfs(int n,int step) 中的n代表当前的台阶数 step代表的是当前走的步数。小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。题目要求是偶数步 那么需要限定step为偶数 才能记录为答案。请你利用计算机的优势,帮助小明寻找答案。
2024-04-06 11:25:04
289
原创 蓝桥杯官网模拟题-植树
小明和朋友们一共有 n 个人,他们经过精心挑选,在一块空地上每个人挑选了一个适合植树的位置,总共 n 个。由于每棵树的面积都是圆周率的整数倍,请输出答案除以圆周率后的值(应当是一个整数)。然而,他们遇到了一个困难:有的树苗比较大,而有的位置挨太近,导致两棵树植下去后会撞在一起。如果只有dfs的思想那么只有百分之八十的分(这个题目的剪枝操作我在b站蓝桥网课中学的)接着下一行中的dfs(now + 1) 代表的就是不种第now棵树 然后往后面遍历。输入的第一行包含一个整数 n ,表示人数,即准备植树的位置数。
2024-03-24 15:44:21
537
原创 蓝桥杯2017年第八届真题-分巧克力(二分算法)
当然小朋友们都希望得到的巧克力尽可能大,你能帮小Hi计算出最大的边长是多少么?小明拿出了珍藏的巧克力招待小朋友们。例如一块6x5的巧克力可以切出6块2x2的巧克力或者2块3x3的巧克力。这个博客是我自己用来记录二分算法的模板的 如果我记录的有错误 烦请谅解。小明一共有N块巧克力,其中第i块是Hi x Wi的方格组成的长方形。check检查的规则是看巧克力分的总数sum有没有大于小孩子的数量k。但是我需要找的是尽可能最大的巧克力 所以需要往右边找 也就是缩左边界。输出切出的正方形巧克力最大可能的边长。
2024-03-24 12:55:08
612
原创 蓝桥杯2023年第十四届省赛真题-更小的数(区间DP)
小蓝有一个长度均为 n 且仅由数字字符 0 ∼ 9 组成的字符串,下标从 0 到 n − 1,你可以将其视作是一个具有 n 位的十进制数字 num,小蓝可以从 num 中选出一段连续的子串并将子串进行反转,最多反转一次。小蓝想要将选出的子串进行反转后再放入原位置处得到的新的数字 numnew 满足条件 numnew < num,请你帮他计算下一共有多少种不同的子串选择方案,只要两个子串在 num 中的位置不完全相同我们就视作是不同的方案。注意,我们允许前导零的存在,即数字的最高位可以是 0 ,这是合法的。
2024-03-17 13:33:48
515
原创 蓝桥杯2023年第十四届省赛真题-平方差
给定 L, R,问 L ≤ x ≤ R 中有多少个数 x 满足存在整数 y,z 使得 x = y2 − z2。输出一行包含一个整数满足题目给定条件的 x 的数量。对于所有评测用例,1 ≤ L ≤ R ≤ 109。输入一行包含两个整数 L, R,用一个空格分隔。对于 40% 的评测用例,LR ≤ 5000;
2024-03-17 11:58:22
478
1
原创 蓝桥杯2022年第十三届决赛真题-卡牌
小明为了凑出尽可能多套牌,拿出了 m 张空白牌,他可以在上面写上数 i,将其当做第 i 种牌来凑出套牌。然而小明觉得手写的牌不太美观,决定第 i 种牌最多手写 bi 张。这 5 张空白牌中,拿 2 张写 1,拿 1 张写 2,这样每种牌的牌数就变为了 3, 3, 3, 4,可以凑出 3 套牌,剩下 2 张空白牌不能再帮助小明凑出一套。他一共有 n 种卡牌,第 i 种卡牌上印有正整数数 i(i ∈ [1, n]),且第 i 种卡牌 现有 ai 张。第三行为 n 个正整数 b1, b2, ..., bn。
2024-03-17 11:13:52
423
原创 蓝桥杯2022年第十三届省赛真题-修剪灌木
爱丽丝要完成一项修剪灌木的工作。有 N 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晚会修剪一棵灌木,让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始,每天向右修剪一棵灌木。当修剪了最右侧的灌木后,她会调转方向,下一天开始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。在第一天的早晨,所有灌木的高度都是 0 厘米。对于 30% 的数据,N ≤ 10. 对于 100% 的数据,1 < N ≤ 10000.输出 N 行,每行一个整数,第i行表示从左到右第 i 棵树最高能长到多高。
2024-03-17 10:50:05
435
原创 蓝桥杯2022年第十三届省赛真题-选数异或
给定一个长度为 n 的数列 A1, A2, · · · , An 和一个非负整数 x,给定 m 次查询, 每次询问能否从某个区间 [l,r] 中选择两个数使得他们的异或等于 x。对于所有评测用例,1 ≤ n, m ≤ 100000 ,0 ≤ x < 220 ,1 ≤ li ≤ ri ≤ n , 0 ≤ Ai < 220。对于每个询问, 如果该区间内存在两个数的异或为 x 则输出 yes, 否则输出 no。第二行包含 n 个整数 A1, A2, · · · , An。首先要明白异或的运算规则。
2024-03-17 10:39:51
865
原创 蓝桥杯2022年第十三届省赛真题-求阶乘
末尾的0怎么来的 因为2*5=10这就有一个0 而在阶乘中 2的数量一定是远大于5的数量的 所以求末尾的0也就是算有多少个5的因子。然后用二分查找的方法从0到1e19不断搜索哪个数的阶乘满足末尾有K个0。所以搜索的时候 如果遇到比K小 那么就缩左边界 比K大 就缩右边界。的末尾恰好有 K 个 0 的最小的 N 是多少?的末尾恰好有 K 个 0。对于 100% 的数据,1 ≤ K ≤ 1018 .对于 30% 的数据,1 ≤ K ≤ 106 .故共有4+0=4个5的因子 也就是有4个0。
2024-03-17 10:12:28
506
1
原创 跳一跳(oj的Java练习)
跳到方块中心时,若上一次的得分为1分或这是本局游戏的第一次跳跃则此次得分为2分,否则此次得分比上一次得分多两分(即连续跳到方块中心时,总得分将+2,+4,+6,+8...)。输入包含多个数字,用空格分隔,每个数字都是1,2,0之一,1表示此次跳跃跳到了方块上但是没有跳到中心,2表示此次跳跃跳到了方块上并且跳到了方块中心,0表示此次跳跃没有跳到方块上(此时游戏结束)。简化后的跳一跳规则如下:玩家每次从当前方块跳到下一个方块,如果没有跳到下一个方块上则游戏结束。
2024-03-16 18:57:08
461
原创 求字符串中出现次数最多的字符(Java版本)
求任意给定字符串中出现次数最多的字符,如果出现最多次数的字符有多个,则只输出最先出现的字符。先用for循环挨个存入到Map容器里面 和c++不同的是我无法直接用索引来读取和修改数据。这个容器的好处在于 我以什么顺序存入就可以以什么顺序读出。这样就方便了我在同等次数的字母下 输出最先出现的字母。这个题目我用的是LinkedHashMap来存储的。我只能以此种方式对map容器里面的数据进行修改。输入任意一个字符串(不超过100个字符)输出出现次数最多的字符。
2024-03-16 18:34:33
752
原创 子弹射击(oj上的java练习)
采用Java线程计数实现一个射击场景的生产者消费者程序:每上膛一颗就射击一颗。请补充完整下面的代码:(结果只显示三次)
2024-03-16 17:34:03
428
原创 多线程打印数字(oj的java练习)
利用多线程按要求打印数字,线程计数从100开始,Thread1先打印101,102,103,104,105,106,107,108,然后是Thread2打印109,110,111,112,113,114,115,116,然后是Thread3打印117,118,119,120,121,122,123,124,接着再由Thread1打印125,126,127,128,129,130,131,132…// 注意,O这里应该是大写,是Java祖先对象object,因为系统原因改不过来。// 你的代码将嵌入这里。
2024-03-16 16:55:23
437
原创 过山洞(oj的java练习)
1、这个山洞每次只能通过一个人,每个人通过山洞的时间为1秒。2、过山洞次序为:Tom,Peter,Bob。过山洞次序为:Tom,Peter,Bob。那么就需要使用join 来进行插队处理。// 你的代码将嵌入这里。
2024-03-16 15:45:02
470
原创 世界杯查询(oj的java练习)
1.从命令行读入一个队名,输出该队获得冠军是哪一年(以下面五届数据作为基础数据)。但是if里面又用了m.get(temp).equals(str) 所以可以得出一定存在两个map容器。第五届,1954年,Swiss,West Germany;第十三届,1986年,Mexico,Argentina;第一届,1930年,Uruguay,Uruguay;第三届,1938年,France,Italy;第七届,1962年,Chile,Brazil;并且两个map容器一定是一个正着存 一个反着存。
2024-03-16 12:24:25
456
原创 JAVA笔记(黑马程序员)
但是,在多线程环境下,如果多个线程同时访问一个StringBuilder对象,就可能会发生数据竞争的问题,导致程序出错。StringBuffer是线程安全的,因为它的方法都是同步的,也就是说,在多线程环境下,多个线程可以同时访问一个StringBuffer对象,而不会发生数据竞争的问题。的时候 如果父类不存在需要重写的方法 那么就会错误(也就是说 这种方式创建的父类对象可以调用子类中对父类重写的方法 但无法直接调用子类新增的方法或同名方法)--------------->代表导入全部的包。
2024-02-28 09:54:46
1500
1
原创 CSP—出行计划(c++)
如果一个场所要求持 24 个单位时间内核酸检测结果入内,那么凭上述的核酸检测结果,可以在第 t+k 时刻到第 t+k+23 时刻进入该场所。出行计划按时间顺序给出,满足 0<t1≤t2≤⋯≤tn≤2×105。m 个查询亦按照时间顺序给出,满足 0<q1<q2<⋯<qm≤2×105。输入的第一行包含空格分隔的三个正整数 n、m 和 k,分别表示出行计划数目、查询个数以及等待核酸检测结果所需时间。ti 时刻进入某场所,该场所需持有 ci 个单位时间内的核酸检测结果入内,其中 0<ci≤2×105。
2023-11-30 20:17:21
369
2
原创 CSP-何以包邮?(c++)
这个题目与01背包很相似 不过需要进行一点转换 因为他要求的是在达到最小包邮x的最小金额,所以只需要用所有书的价值sum-x得到y,转化为了在最大值为y的情况下,选取尽可能多的金额的书,这样就转变为了一个背包问题,其中物品的重量和价值是相等的。dp【i-1】【j - weight【i】】 + value【i】代表的就是选取该物品 在选取该物品的之前必须提前预留出来大小为weigh【i】的空间。接下来输入 n 行,其中第 i 行(1≤i≤n)仅包含一个正整数 ai,表示购物车中第 i 本书的价格。
2023-11-27 15:41:23
607
2
原创 Linux个人部分学习笔记整理
表示home目录 比如cd~ 即可切换到home目录 或者cd ~/Desktop 表示切换到home路径下的Desktop目录。cd命令无需选项 只有参数 表示切换到哪个目录下(无参数情况下表示回到home目录,即为“/home”)例如:“/usr/local/hello.txt” 开头的“/”表示根目录 其他的表示为层级关系。ls -l /usr/bin | wc -l (表示在bin目录下过滤统计bin目录的行数)-options :可选非必填命令的一些选项,可以通过选项控制命令行的行为细节。
2023-10-21 15:27:10
138
原创 Python个人学习部分整理笔记(黑马程序员)
dict = { "A":{"语文" : 99, "数学" : 90, "英语": 100}, "B":{"语文" : 89, "数学" : 80, "英语": 82}, "C":{"语文" : 79, "数学" : 70, "英语": 77} }20.pyhton的容器类型:列表(list), 元组(tuple), 字符串(str), 集合(set), 字典(dict)五类容器总结 列表(list), 元组(tuple), 字符串(str), 集合(set), 字典(dict)
2023-10-21 13:40:51
539
2
原创 蓝桥杯2023年第十四届省赛真题-子串简写
程序猿圈子里正在流行一种很新的简写方法:对于一个字符串,只保留首尾字符,将首尾字符之间的所有字符用这部分的长度代替。S 只包含小写字母。注意我的sum是不会清空的 所以这样写的意义就在于 处于前面的start会被重复计算 这样就不需要再去管前面的数量了。在本题中,我们规定长度大于等于 K 的字符串都可以采用这种简写方法(长度小于 K 的字符串不配使用这种简写)。s[i]在碰见start的时候 就会加1 然后s[j]在碰见end的时候 就会让ans = ans + sum。|S | 代表字符串 S 的长度。
2023-10-14 17:37:42
639
3
原创 蓝桥杯2023年第十四届省赛真题-接龙数列
12, 23, 34, 56 不是接龙数列,因为 56的首位数字不等于 34 的末位数字。对于一个长度为 K 的整数数列:A1, A2, . . . , AK,我们称之为接龙数列当且仅当 Ai 的首位数字恰好等于 Ai−1 的末位数字 (2 ≤ i ≤ K)。现在给定一个长度为 N 的数列 A1, A2, . . . , AN,请你计算最少从中删除多少个数,可以使剩下的序列是接龙序列?在转移方程中 y代表的是一个数字的低位 x代表的是一个数字的高位。对于 20% 的数据,1 ≤ N ≤ 20。
2023-10-14 16:35:55
244
原创 蓝桥杯2023年第十四届省赛真题-飞机降落
题目描述N 架飞机准备降落到某个只有一条跑道的机场。其中第 i 架飞机在 Ti 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 Di 个单位时间,即它最早可以于 Ti 时刻开始降落,最晚可以于 Ti + Di 时刻开始降落。降落过程需要 Li个单位时间。一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落,但是不能在前一架飞机完成降落前开始降落。请你判断 N 架飞机是否可以全部安全降落。
2023-10-07 17:58:58
2786
2
原创 蓝桥杯2023年第十四届省赛真题-冶炼金属
所以我们在二分查找Vmin的时候 只需要增加一个判断 判断是否X与V相除得到的结果会小于等于O,如果大于O,则说明我们搜索到的值V是位于靠左的位置,所以我们需要L = mid + 1,将结果往后靠,如果小于等于O,则说明在右边的范围内,但是我们需要查找到Vmin,所以我们应该将mid先保存下来,再将R=mid - 1,继续寻找符合条件的比mid小的V值。当 V = 20 时,有:⌊75/20⌋ = 3,⌊ 53/20 ⌋ = 2,⌊ 59/20 ⌋ = 2,可以看到符合所有冶炼记录。
2023-10-07 17:49:59
1175
3
原创 Problem E: 猴子选大王
n只猴子围成一圈,顺时针方向从1到n编号。之后从1号开始顺时针方向让猴子从1,2,…,m依次报数,凡是报m的猴子,就让其出圈,取消其候选资格。然后不停地按顺时针方向逐一让报m者出圈,最后剩下一个就是猴王。按照格式“monkey king is: xx”输出猴大王。例如:n = 8, m = 3时,7是猴王。输入两个正整数n和m。
2023-08-12 11:27:44
249
原创 Problem F: 链表实验题目(指向指针的指针)
/建立链表,调用函数add_to_list(struct node **head, int n)//删除链表中值为n的结点,并释放该结点。//向链表首部插入一个值为n的结点。第三行输出删除值为n的结点后的链表结点的值,每个整数以","分隔,最后一个后面没有逗号。输入的第二行是一个整数n,为搜索和删除的结点的值。
2023-08-10 17:05:34
231
原创 Problem G: 多项式相加(链表版)
要求编写一个程序将两个链表合并为一个,合并后的链表表示两个多项式相加的结果,且表头指针为first,即把second链表的内容加到first链表中去。每行输入两个整数,第一个表示系数a(a!=0),第二个表示指数m(m>=0),输入0 0时结束一个多项式的输入。声明结点为结构体itm的变量,那么可以用结点来表示多项式中的一项。//a为系数,m为指数。按照降次输出合并后的多项式。注意其中的x是小写字母x。
2023-08-10 17:04:42
115
原创 Problem B: 矩阵求和
然后是 n 行,每行有 n 个整数,整数范围为(-100,100),相互之间用空格分隔。第一行输入一个整数 n,表示其后有 n 行 n 列(2<=n<=10)。输入一个 n*n 的矩阵,求出每行的和与每列的和。第一行为每行的和,每个数据占 5 位。第二行为每列的和,每个数据占 5 位。
2023-08-10 17:02:55
193
原创 Problem J: 计算e的近似值
数学常量 e 的值可以用一个无穷级数表示: e = 1 + 1/1!当n很大时,通项 1/n!会很小,因此,在计算中可以认为通项1/n!小于等于给定的精度以后的项可以忽略。在一行中输出 e 的近似值(保留10位小数)。在一行中输入一个小数,表示 e 的通项精度。编写程序计算 e 的近似值。
2023-08-10 17:01:37
275
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人