自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (1)
  • 收藏
  • 关注

原创 【opencv-ANNs】简单自动驾驶树莓派小车

设计一个可以自动驾驶的树莓派小车,能实时分析摄像头采集到的数据,完成左右转向的判断和执行,使其可以保持在车道上自动行驶。

2021-01-06 23:17:52 4866 3

原创 c++中string的split的替代方法——sstream应用

所要解决的问题:c++中没有很直接的split方法,但是可以通过很多其他途径办到。这里介绍sstream的方法。代码:#include <cctype>#include <iostream>#include <set>#include <sstream>using namespace std;int main(){ set<string> exclude={"the","a","an","of","for","and"

2022-03-10 14:30:13 254

原创 PAT (Basic Level) Practice (中文) 1090 危险品装箱 (25 分)

原题链接具体解释请见代码注释代码:#include <iostream>#include <vector>#include <map>using namespace std;int main(){ int n,m; cin>>n>>m; map<int,int> mapp; // 记录危险品名单 map<int,vector<int>> list; // 为每个危险

2022-03-08 21:41:21 195

原创 递归问题

非常好的一篇教程:三道题套路解决递归问题

2021-03-27 10:29:05 125

原创 LeetCode 456. 132 模式 【单调栈】

原题LeetCode 456. 132 模式代码1 枚举“3” c++class Solution {public: bool find132pattern(vector<int>& nums) { bool flag=0; int min=1000000000; for(int i=0;i<nums.size()-1;i++){ for(int j=i+1;j<nums.size();j+

2021-03-25 13:24:14 120 4

原创 【动态规划】大番茄的dp学习笔记

例题1 小青蛙跳台阶一只青蛙一次可以跳一级台阶,也可以一次跳两个台阶,求青蛙跳上n阶台阶一共有多少种跳法?思路:将问题转化为对“最后一步”的判断,浙江可以逐步对问题进行“降级”。设dp[n]是一共要走n阶时的解决方案数目(跳法)。若最后一步是一步,则子问题变成dp[n-1];若最后一步是两步,则子问题变成dp[n-2]。因为这两种情况都有可能,所以dp[n]=dp[n-1]+dp[n-2]。代码class Solution: def numWays(self, n: int) -&

2021-03-18 13:49:02 177

原创 LeetCode 1143 最长公共子序列 dp

原题最长公共子序列c++ dpclass Solution {public: int longestCommonSubsequence(string s1, string s2) { vector<vector<int> > dp(s1.size() + 1, vector<int>(s2.size() + 1, 0)); for(int i=1;i<=s1.size();i++){ for(i

2021-03-17 20:52:32 77 1

原创 PAT (Basic Level) Practice (中文)1080 MOOC期终成绩 (25 分)

原题1080 MOOC期终成绩 (25 分)代码#include <iostream>#include <vector>#include <algorithm>#include <map>#include <utility>using namespace std;struct num{ int g1=-1,g2=-1,g3=-1; int getNum(){ if(g1>=200) {

2021-03-11 17:28:51 78

原创 PAT (Basic Level) Practice (中文)1075 链表元素分类 (25 分)【测试点4】

测试点4 有废数据

2021-03-10 17:03:28 262

原创 PAT (Basic Level) Practice (中文)1074 宇宙无敌加法器 (20 分)【详细思路】

原题1074 宇宙无敌加法器 (20 分)思路这题看起来复杂,但是如果方法选的好的话还是可以处理的很好的。自己在debug的过程中看了很多篇blog,还是觉得柳神的代码写的最好。这里来简单分析一下这一题的思路和要点:首先要做的是补长。如果出现长度不一样的情况的话后面的处理会更加麻烦,所以直接在最开始就给两个数字前面补0到和s一样长,这样就避免了后面的分类讨论处理。在做加法的时候其实和以前做的一些大数加法操作差不多。从后往前处理,每次都要先算一个mod,也就是题目中说的“进制”,用两数相加然后

2021-03-10 15:55:28 81 1

原创 PAT (Basic Level) Practice (中文)1070 结绳 (25 分)【easy】

原题1070 结绳 (25 分)思路这道题看着复杂,其实分析清楚之后处理起来很简单,而且没有坑!是我最喜欢的题目类型了。称最终的对折过多次的绳子为“结绳”,称普通绳子为“绳子”。分析得,前两个进入“结绳”的绳子对折次数是最多的,为n-1次,其余绳子递减,最后一根绳子仅对折一次。即,在最后的“结绳”长度中:a[1]'=a[1]^n-1^ ,a[2]'=a[2]^n-1^ ,a[3]'=a[3]^n-2^ ,a[i]'=a[I]^n-i+1^。得到结论:短绳应该先进入,最长的放最后面。代码处理

2021-03-09 21:02:05 101

原创 PAT (Basic Level) Practice (中文)1060 爱丁顿数 (25 分)【思路&极简代码】

原题1060 爱丁顿数 (25 分)思路1、降序排列2、找到一个符合a[i]>i的i的最大值小坑之前一直以为,可以骑车公里数是大于等于E,然后有一半的测试点过不去,结果想了好一会才发现是大于。题目没读清楚,自己把自己坑惨了。自认为处理思路还是可以的,简单明了。P.S. 数组从1开始计数,方便思考;而max_id的初值是0,避免E=0出错。代码#include <iostream>using namespace std;int main(){ int n;

2021-03-07 21:06:09 90 1

原创 PAT (Basic Level) Practice (中文)1055 集体照 (25 分)【easy】

原题1055 集体照 (25 分)解析很简单,设置了一个flag让他在±1之间变化,然后利用list的push_back和push_front添加元素即可。代码#include <iostream>#include <vector>#include <list>using namespace std;struct stu{ string name; int h;};bool myCmp(stu s1, stu s2){ i

2021-03-07 15:59:31 99

原创 PAT (Basic Level) Practice (中文)1054 求平均值 (20 分)【测试点2+测试用例】

原题1054 求平均值 (20 分)解析这道题是有点坑的。一开始我有一个测试点二一直过不了,然后就一直添加对数字的判断条件,结果最后发现是The average of 1 number is Y没有s,但是The average of 0 numbers is Undefined又是有s的…= =在测试过程中也想出了很多之前没想到的特例,我在这里给出一些供大家参考。常规的有:aaa,1.999,1.1.1.,-,-.,--,..,8-,`.8我的夭寿代码#include <iostr

2021-03-07 14:51:32 418 1

原创 PAT (Basic Level) Practice (中文)1051 复数乘法 (15 分)【测试点2,3】

原题1051 复数乘法 (15 分)解析虽然是一个小小的15分题,但是还是值得记录一下。因为这个点以前从没遇到过,也不容易发现:由于大于-0.005且小于0的double小数在最后会被四舍五入输出0.00,但同时又被判定成负数,所以最后的输出结果会变成-0.00。这显然是不符合要求的。所以处理办法就是将这样的数全部置0,避免输出符号。修改过后即可通过测试点2,3。P.S. 复数的指数形式的乘法只需要模长相乘幅角相加即可,最后通过三角函数转换为一般形式。代码#include <iost

2021-03-07 10:57:22 127

原创 PAT (Basic Level) Practice (中文)1048 数字加密 (20 分)【太坑了啊】

原题1048 数字加密 (20 分)解析这道题原本是不难的,但就是实在是题目描述的不好。正确做法是,当给出的b比a短的时候,需要在b前面补0;而在结果的开头有0时则无需处理。代码#include <iostream>#include <stack>using namespace std;int main() { string a, b; cin >> a >> b; stack<char> s;

2021-03-06 15:56:29 97 4

原创 PAT (Basic Level) Practice (中文)1045 快速排序 (25 分)【测试点2 格式错误】

原题1045 快速排序 (25 分)解析最直接的做法,每次对两边的所有数字进行大小判断,很容易想到,但也必然是会超时的。所以我们要减少比较的次数。我的做法是,提前将每个数两边的最大最小值都先算好存起来,之后每个数都只要跟这两个最大最小值进行比较即可,节省了很多时间。测试点2 格式错误看了老半天没发现错误在哪,结果随便在末尾加了个换行居然过了…= =坑啊!代码#include <iostream>#include <vector>using namespace s

2021-03-06 14:17:07 175

原创 PAT (Basic Level) Practice (中文)1044 火星数字 (20 分)【测试点2,4】

原题1044 火星数字 (20 分)分析这道题的处理并不是很简单的。首先,在读入数据的时候就要认识到,需要读入的是一行,要考虑空格的读入。所以不能用简单的cin,而是要像这样getline(cin, s[i]);使用getline函数。但是使用getline的时候又会有一个小坑,那就是要先把第一行的换行符给处理掉,不然会少读入一个数据。然后在处理输入数字时麻烦一些,需要考虑多种情况,不然会出现格式错误。处理火星文时相对简单,请看代码。测试点2,4这里需要注意的是,如果出现的是类似于“26”这

2021-03-06 11:08:34 303

原创 PAT (Basic Level) Practice (中文)1040 有几个PAT (25 分)

原题1040 有几个PAT (25 分)代码#include <iostream>using namespace std;int main(){ string s; cin>>s; int p=0,t=0,sum=0; for(int i=0;i<s.size();i++){ if(s[i]=='T') ++t; } for(int i=0;i<s.size();i++){ if(s

2021-03-05 19:56:59 65

原创 PAT (Basic Level) Practice (中文)1037 在霍格沃茨找零钱 (20 分)

原题1037 在霍格沃茨找零钱 (20 分)代码#include <iostream>using namespace std;struct money{ int g,s,k; void toK(){ s+=g*17; k+=s*29; g=0; s=0; } void toNormal(){ s=k/29; k=k%29; g=s/17;

2021-03-05 14:24:45 95

原创 PAT (Basic Level) Practice (中文)1035 插入与归并 (25 分)【测试点6 归并】

原题1035 插入与归并 (25 分)思路不需要模拟两种排序方式来进行一步步的对比。首先,我们根据归并排序的特征可以很明显的区分开插排和归并排序,做法是将“每两个连续的数字都是有序的”作为归并排序的判断依据。因为只要执行了一次归并排序的数列都会有这个特征。将两种排序区分开之后就很好处理了。插排做法插排就进行下一次的插入。做法是在数列中找到一个小于前数的数,将它插到“合适”的位置,即大于前数小于后数。归并做法归并排序则稍麻烦一点,需要确定此时给出数列已经排序了的步长,然后将步长翻倍,用stl

2021-03-05 12:07:38 198

原创 PAT (Basic Level) Practice (中文)1033 旧键盘打字 (20 分)

#include <iostream>#include <vector>using namespace std;int main(){ char c; vector<char> v; bool flag=0; while((c=getchar())!='\n'){ if(c=='+') flag=1; v.push_back(c); } string s; cin>&gt

2021-03-04 20:07:29 119 1

原创 PAT (Basic Level) Practice (中文)1032 挖掘机技术哪家强 (20 分)

能过就行哈,别多纠结了。记得数组给他整大点。#include <iostream>using namespace std;int main(){ int n; cin>>n; int a[999999]; int index=0,max=0; for(int i=0;i<n;i++){ int t,cnt; cin>>t>>cnt; a[t]+=cnt;

2021-03-04 19:50:08 63 1

原创 PAT (Basic Level) Practice (中文)1030 完美数列 (25 分)【测试点4超时&测试点5】

原题给定一个正整数数列,和正整数 p,设这个数列中的最大值是 M,最小值是 m,如果 M≤mp,则称这个数列是完美数列。现在给定参数 p 和一些正整数,请你从中选择尽可能多的数构成一个完美数列。输入格式:输入第一行给出两个正整数 N 和 p,其中 N(≤10​5​​ )是输入的正整数的个数,p(≤10​9​​ )是给定的参数。第二行给出 N 个正整数,每个数不超过 10​9​​ 。输出格式:在一行中输出最多可以选择多少个数可以用它们组成一个完美数列。输入样例:10 82 3 20 4 5

2021-03-04 13:46:11 394 3

原创 PAT (Basic Level) Practice (中文)1028 人口普查 (20 分)【测试点3、4】

原题某城镇进行人口普查,得到了全体居民的生日。现请你写个程序,找出镇上最年长和最年轻的人。这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过 200 岁的老人,而今天是 2014 年 9 月 6 日,所以超过 200 岁的生日和未出生的生日都是不合理的,应该被过滤掉。输入格式:输入在第一行给出正整数 N,取值在(0,10​5​​ ];随后 N 行,每行给出 1 个人的姓名(由不超过 5 个英文字母组成的字符串)、以及按 yyyy/mm/dd(即年/月/日)格式给出的生日。题目

2021-03-01 21:07:23 253

原创 PAT (Basic Level) Practice (中文)1027 打印沙漏 (20 分)

题目链接ac代码:#include <iostream>using namespace std;int main(){ int N; char c; cin>>N>>c; if(N==0){ cout<<0; return 0; } int n=1; int line=1; while(n<=N){ if(n+(line*2+1)*2&

2021-02-20 21:30:44 83

原创 PAT (Basic Level) Practice (中文)1023 组个最小数 (20 分)【测试点】

原题给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定数字,请编写程序输出能够组成的最小的数。输入格式:输入在一行中给出 10 个非负整数,顺序表示我们拥有数字 0、数字 1、……数字 9 的个数。整数间用一个空格分隔。10 个数字的总个数不超过 50,且至少拥有 1 个非 0 的数字。输出格式:在一行中输出能够组成的最

2021-02-07 23:07:47 323 4

原创 PAT (Basic Level) Practice (中文)1022 D进制的A+B (20 分)【测试点2,3,4】

原题:输入两个非负 10 进制整数 A 和 B (≤2​30​​ −1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出 3 个整数 A、B 和 D。输出格式:输出 A+B 的 D 进制数。输入样例:123 456 8输出样例:1103代码:#include <iostream>#include <stack>using namespace std;int main(){ int a,b,d; cin&

2021-02-07 22:17:43 357 1

原创 汇编 编程 常用知识点汇总

汇编语言中的AX、BX、CX、DX是CPU内部的通用寄存器中的数据寄存器助记符。数据寄存器用来存放参与运算的数据或是存储运算的结果。这四个数据寄存器都是16位的,实际由两个8位寄存器组合而成,这是为了灵活处理8位数据。每个寄存器可以将高、低8位分别作为独立的8位寄存器使用。其中的高8位用AH、BH、CH、DH表示,低8位用AL、BL、CL、DL表示。这四个数据寄存器除了作为通用寄存器使用外,还有各自的特殊功能:AX 寄存器称为累加器,常用于存放算术、逻辑运算中的操作数或结果。另外,所有的I/O指令都要

2021-01-06 23:02:04 522

原创 操作系统实验 按优先数调度算法实现处理机调度的程序

(1)假定系统有五个进程,每一个进程用一个进程控制块PCB来代表。进程控制的格式为:进程名指针要求运行时间优先数状态其中,进程名——作为进程的标识,假设五个进程的进程名分别为P1,P2,P3,P4,P5。指针——按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“0”。要求运行时间——假设进程需要运行的单位时间数。优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行。状态——可假设有两种状态,“就绪”状态和“结束”状态。五个进

2020-12-29 23:42:10 2236

原创 操作系统实验四:内存分配算法

实验四:内存分配算法——动态分区方式主存的分配和回收本机操作系统:macOS Big Sur一、前言一个好的计算机系统不仅要有一个足够容量的、存取速度高的、稳定可靠的主存储器,而且要能合理地分配和使用这些存储空间。当用户提出申请主存储器空间时,存储管理必须根据申请者的要求,按一定的策略分析主存空间的使用情况,找出足够的空闲区域分配给申请者。当作业撤离或主动归还主存资源时,则存储管理要收回作业占用的主存空间或归还部分主存空间。主存的分配和回收的实现是与主存储器的管理方式有关的,软件模拟内存的分配。二

2020-12-25 22:27:55 3610 1

原创 操作系统osd - pintos环境搭建保姆级教程!

本博客主要用于本人自己的学习记录,内容仅供参考。day1pintos环境搭建完成,跑了第一次make check,一共有7个pass,20个fail,符合预期。重要参考:博客园-斯坦福大学操作系统pintos-laiypintos安装指南-geeeeeker配置环境的过程主要是按照第二个链接来做的。亲测有效,没有问题。chenbo老师视频教程:1.git到本地 cd到S2080606****/pintos/src/utils2.里面的pintos会调用Pintos.pm3.expor

2020-12-25 21:36:53 4476 1

原创 PAT (Basic Level) Practice (中文)-1019 数字黑洞 (20分)

给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的 6174,这个神奇的数字也叫 Kaprekar 常数。例如,我们从6767开始,将得到7766 - 6677 = 10899810 - 0189 = 96219621 - 1269 = 83528532 - 2358 = 61747641 - 1467 = 6174… …现给定任意 4

2020-12-22 11:01:28 134 2

原创 PAT (Basic Level) Practice (中文)-1018 锤子剪刀布 (20分)

题目链接大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第 1 行给出正整数 N(≤10​5​​ ),即双方交锋的次数。随后 N 行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C 代表“锤子”、J 代表“剪刀”、B 代表“布”,第 1 个字母代表甲方,第 2 个代表乙方,中间有 1 个空格。输出格式:输出第 1、2 行分别给出甲、乙的胜、平、负次数,数字间以

2020-12-12 16:56:23 131 2

原创 PAT (Basic Level) Practice (中文)-1016 部分A+B (15分)

题目链接正整数 A 的“D​A(为 1 位整数)部分”定义为由 A 中所有 D​A组成的新整数 PA​​ 。例如:给定 A=3862767,D​A=6,则 A 的“6 部分”PA是 66,因为 A 中有 2 个 6。现给定 A、DA 、B、D​B​​ ,请编写程序计算 P​A​​ +P​B。输入格式:输入在一行中依次给出 A、DA 、B、D​B​​ ,中间以空格分隔,其中 0<A,B<10​10 。输出格式:在一行中输出 P​A+PB的值。输入样例 1:3862767 6 1353

2020-12-09 16:17:43 73

原创 PAT (Basic Level) Practice (中文)-1015 德才论 (25分)

题目链接宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。输入格式:输入第一行给出 3 个正整数,分别为:N(≤10​5),即考生总数;L(≥60),为录取最低分数线,即德分和才分均不低于 L 的考生才有资格被考虑录取;H(<100),为优先录取线——德分和才分均不低于此线的被定义为“才德全尽”,

2020-12-09 01:02:24 56

原创 PAT (Basic Level) Practice (中文)-1014-福尔摩斯的约会 (20分)

题目链接大侦探福尔摩斯接到一张奇怪的字条:我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四 14:04,因为前面两字符串中第 1 对相同的大写英文字母(大小写有区分)是第 4 个字母 D,代表星期四;第 2 对相同的字符是 E ,那是第 5 个英文字母,代表一天里的第 14 个钟头(于是一天的 0 点到 23 点由数字 0 到 9、以及大写字母 A 到 N

2020-12-08 00:35:27 77 2

原创 PAT (Basic Level) Practice (中文)-1013-数素数 (20分)

题目链接令 P​i表示第 i 个素数。现任给两个正整数 M≤N≤10​4​​ ,请输出 PM到 P​N的所有素数。输入格式:输入在一行中给出 M 和 N,其间以空格分隔。输出格式:输出从 P​M到 P​N的所有素数,每 10 个数字占 1 行,其间以空格分隔,但行末不得有多余空格。输入样例:5 27输出样例:11 13 17 19 23 29 31 37 41 4347 53 59 61 67 71 73 79 83 8997 101 103#include <iostream

2020-12-07 23:05:41 75

原创 PAT (Basic Level) Practice (中文)-1012-数字分类 (20分)

题目链接给定一系列正整数,请按要求对数字进行分类,并输出以下 5 个数字:A​1= 能被 5 整除的数字中所有偶数的和;A​2= 将被 5 除后余 1 的数字按给出顺序进行交错求和,即计算 n​1−n​2+n3 −n4⋯;A3= 被 5 除后余 2 的数字的个数;A4= 被 5 除后余 3 的数字的平均数,精确到小数点后 1 位;A​5= 被 5 除后余 4 的数字中最大数字。输入格式:每个输入包含 1 个测试用例。每个测试用例先给出一个不超过 1000 的正整数 N,随后给出 N 个不超过

2020-12-06 13:54:23 101 2

原创 PAT (Basic Level) Practice (中文)-1011-A+B 和 C (15分)

题目链接给定区间 [−2​31, 231 ] 内的 3 个整数 A、B 和 C,请判断 A+B 是否大于 C。输入格式:输入第 1 行给出正整数 T (≤10),是测试用例的个数。随后给出 T 组测试用例,每组占一行,顺序给出 A、B 和 C。整数间以空格分隔。输出格式:对每组测试用例,在一行中输出 Case #X: true 如果 A+B>C,否则输出 Case #X: false,其中 X 是测试用例的编号(从 1 开始)。输入样例:41 2 32 3 42147483647

2020-12-06 10:46:26 77

软件工程复习资料!必备!

软件工程复习资料!必备!一共72页,包含选择填空简答题!再也不用看书本复习!

2021-01-13

空空如也

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

TA关注的人

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