- 博客(77)
- 收藏
- 关注
原创 微信小程序的人工智能模型部署(flask)
我使用的微信小程序开发工具是:“微信开发者工具”,当然你用其他的开发工具应该也差别不大;人工智能模型用的是pytorch;具体不介绍人工智能模型的保存,主要介绍一下flask的写法;
2022-12-31 14:27:08
3126
2
原创 【PAT(甲级)】1078 Hashing
Quadratic probing即二次方探查法,就是在hash table里,如果一个元素的余数位置已经被占用,2.测试点3是检查你二次方探查法是否使用正确。直到发现全部都已经被占用则输出“-”。1. 测试点1是检查1不是素数;
2022-10-23 14:17:15
427
1
原创 【PAT(甲级)】1077 Kuchiguse
题目要求我们找出给出每一句中末尾相同的最长字符串。思路就很简单啦,把每一句都用string类型给存储下来,然后从后往前比较,一直到产生了不同的字符为止,把之前相同的字符输出即可。3. 读取一行的代码用getline的时候,记得把前面读取数字后面的换行字符用getchar()消掉!2. 边界情况,一个字符都没有相同的时候,和所有字符都相同的时候,这两个情况是容易出错的;1. 注意一下,不要按照空格来划分单词,直接从后往前比较字符的相同与否即可;
2022-10-15 20:30:27
203
原创 【PAT(甲级)】1074 Reversing Linked List
链表转置问题,首先我们需要定义一个结构来存储这些数据的Address,Data,Next;1. 测试点1是因为有好几组的数据需要转置,每个数据的末尾,指向的都是后一个数组的首部,你要注意的就是,你指向的后一个数据是否已经转置过了;每K个数字就转置一次,所以可以用vector把每K个数据存放一次,再分别转置后凭借在一起即可。2. 测试点5是需要注意每次放在数组里面数据的个数;
2022-09-22 18:44:54
445
原创 【PAT(甲级)】1073 Scientific Notation
题目给出科学计数法的数字,让我们输出它的实际数字。很明显的一道字符串处理问题,分析一下题目,我们发现主要解决的是小数点‘.’的位置问题。根据符号的“+”或者“-”来处理它是往前移动或者往后移动下面就是前后移动的代码:
2022-09-19 20:06:51
268
原创 【PAT(甲级)】1072 Gas Station
最短路径问题,用Dijisktra算法就可以解题。需要注意的是,起点应该是加油站的位置,也就是说,每个加油站都要用Dijisktra算法走一遍,看一下是否能到达每个居民点,所以要注意在使用算法时的一些变量需要重置。1. 测试样例1中的3.3是个错误数据,真实答案应该是3.2,算出来的数据不需要四舍五入。2. 最后一个测试点是数组容量的问题,最大应该是N+M,最大不超过1010个。对加油站Gn只要换算成N+n即可,这样可以方便运算。
2022-09-19 19:16:46
261
原创 【PAT(甲级)】1071 Speech Patterns
找对应关系,用map来存储每个单词出现的次数,然后输出次数最多的单词即可。注意的地方是,单词之间不区别大小写。]这些是合法字符,其他的都堪称是分割符号,例如:aaa**aaaa,就是两个单词分别是aaa和aaaa;]这些是合法字符,其他的都看成是字母之间的分隔符,要求我们输出其中出现次数最多的单词。a a a\n 应该输出a 3;2. 单词之间不区分大小写;题目中给出一个句子,只有[
2022-09-18 19:31:44
130
原创 【PAT(甲级)】1070 Mooncake
题目要求给出买定量月饼能赚到的最大金钱数量,所以我们需要先算出每种月饼的单价,按照单价的高低进行排序,先卖贵的月饼,再卖便宜的月饼即可。
2022-09-17 16:41:15
199
原创 【PAT(甲级)】1068 Find More Coins
首先分解一下问题,如果我们要得到一组总价值为(N+coin[7])的硬币组合,假设coin[1] + coin[3] + coin[6] = N,那么我们是不是只要找到等于N的路径,再加上coin[7]就可以得到答案了?所以我们定义一个sum[ ]数组和dp[ ][ ]数组,来存储这一条路径。其中sum数组的下标就是这个数组所想要支付的金额,所以当sum[M]!dp[ i ][ j ]数组中,如果为1,则代表下标为i的硬币是支付金额总值j的一种支付方式。
2022-09-15 18:38:57
420
原创 【PAT(甲级)】1067 Sort with Swap(0, i)(附解题思路)
【PAT(甲级)】1067 Sort with Swap(0, i)解题思路分享
2022-09-15 10:30:41
182
原创 【PAT(甲级)】1066 Root of AVL Tree
题目意思很清楚了,就是给你一个数组,让你构造平衡二叉搜索树。这里就涉及到树的旋转问题,关于树的旋转分为4类分别为LL,RR,LR,RL;对于后面两种,分别可以先对它的子树进行RR或先进行LL,转换后变成LL或RR类型,所以我主要还是讲一下LL和RR的旋转方法。LL类就是在当前根节点的左子树的左子树上插入了新的节点,导致树不平衡,需要旋转来构造新的平衡。意思就是,把左树的节点作为根节点,左树的左树为根的左树,左树的右树,为root的左树。对于此,我们的做法是:此时不平衡的点权重为88记作root;
2022-09-14 20:29:01
140
原创 【PAT(甲级)】1064 Complete Binary Search Tree
既然已经可以得到二叉搜索树的中序输出,那么我们可以用数组来模拟树,中序输出的顺序是左——根——右;假设根节点下标为i,左子树就是2*i,右子树就是2*i+1;由此递归出的数组,从前往后刚好就是二叉搜索树的层序输出。由题意,这棵二叉搜索树必定存在,且节点就是给出的完全二叉树的节点,那么二叉搜索树的中序输出是从小到大规则排序的,那我们是不是把完全二叉树的节点由小到大排序,就可以得到二叉搜索树的中序输出了?题目给出一个完全二叉树的节点信息,让你根据这颗完全二叉树建立唯一存在的一棵二叉搜索树,并层序输出其节点。
2022-09-08 14:36:11
207
原创 【PAT(甲级)】1063 Set Similarity(题目意思)
那么显然,我们在处理这类数据的时候就可以不用考虑是否有多个重复出现的数字啦,直接 用set对给出的数据进行存储即可。题目的意思是给出N个数组,再给出K对让你求相似度的下标,让你求出对应下标数组的相似度。相似度求法中,NC指两个数组的交集,NT指两个数组的并集。
2022-09-07 19:51:45
197
原创 【PAT(甲级)】1062 Talent and Virtue
About 900 years ago, a Chinese philosopher Sima Guang wrote a history book in which he talked about people's talent and virtue. According to his theory, a man being outstanding in both talent and virtue must be a "sage(圣人)";
2022-09-07 19:47:31
146
原创 【PAT(甲级)】1061 Dating(详细的易错点)
1. 第一次相同的字母必须在'A'-'G'之间;2. 第二次相同的必须在'A'-'N'或者'0'-'9'之间;3. 确定分钟的相同字符一定要是英文字母即'A'-'Z'或者'a'-'z';4. 一定要确保你星期一到星期天的英文字母正确!!!!
2022-09-06 15:32:39
302
1
原创 【PAT(甲级)】1057 Stack(关于树状数组的简单解释)
2. 这道题目意思就是要求你给栈增加一个功能,能返回栈内第(N/2)或((N+1)/2)个最小的元素。所以,我们把栈内的数字看成是下标,用一个新的数组c[]来存储小于等于这个数字的个数。新的数组c[ ]是一个树状数组,树状数组的特点就是可以求某一个区间的前缀和,所以每次只要把下标 i 跳到 i 加减 lowbit(i)的位置就可以清楚的知道关于此数字,有多少个小于等于它的数字存在。因为每次更新树状数组的时候,都是以栈内元素为下标的,所以栈内元素一定是符合第(N/2)或(N+1)/2个中最小的一个值。
2022-09-05 15:43:08
283
原创 【PAT(甲级)】1059 Prime Factors
输出给出的long int数字的质因子。所以我们先要创建一个函数来判断数字是否是素数,然后如果这个long int本身是个很大的素数就输出它本身即可,可以省去查找因子的时间。因为要输出有几个这样的质数,所以当找到一个可以整除的质数时,要循环整除,直到这个数不能再被整除为止。(即将给出的数一直除以素数直到被除数为素数为止)2. ^前面的是可以整除的素数,后面的是这个素数能被整除的次数(应该就我看题目不仔细了吧O。1. 对于0,1这样的数字直接输出它本身等于它本身就行,而对于7,11,13也是直接输出;
2022-09-03 21:01:22
267
原创 【PAT(甲级)】1058 A+B in Hogwarts
If you are a fan of Harry Potter, you would know the world of magic has its own currency system -- as Hagrid explained it to Harry, "Seventeen silver Sickles to a Galleon and twenty-nine Knuts to a Sickle, it's easy enough." Your job is to write a program
2022-09-03 19:40:40
196
原创 【PAT(甲级)】1056 Mice and Rice
排名的顺序则是1-Np,如果有两个第三名,那么就没有第四名,而且第一次淘汰人的排名就算组数+1。所以排名的算法就是[(当前的所有人数/最大组内人数)的向上取整+1]。题目给出Np只老鼠的体重,每个小组最多可以包含Ng只老鼠,如果剩下来的老鼠不足Ng只则把这些老鼠归为另一组。18 37 第四组:0。第一组:19 25。
2022-09-03 19:18:48
314
原创 【PAT(甲级)】1055 The World‘s Richest
1. 超时的问题,记住一定不要用c++的读取与输出,不然一直超时的!就算你把年龄当作下标也一样会超时。题目要求输出,在要求年龄范围内的按照(钱多(年青(名字按字典排序)))的优先级输出相应的富豪个数。3.在输出的时候添加break,使得程序运行的时候可以更快。1.我们就先定义一个结构用来存储富豪的相关信息;2.用sort对这些信息按照要求快排;
2022-09-01 19:32:43
309
原创 【PAT(甲级)】1054 The Dominant Color
题目给出N行,M列的颜色,要求你输出其中出现次数最多的颜色。又是一道数字与数字对应的题目,我们用map来存储每个数字出现的次数,再通过循环找到出现次数最多的即可。
2022-08-30 20:20:31
120
1
原创 【PAT(甲级)】1053 Path of Equal Weight
题目意思很清晰,所以只要dfs()这颗树,把节点的权重加一下就可以解决这道题的大部分测试点了。主要的问题在于要求输出的顺序是先输出节点权重大的,再输出节点权重小的。我利用了vector 来存储路径,所以直接用了sort和自己写的cmp来对结果进行重新排序。如果你对路径的排序是一层一层的排序的话(就是直接对节点进行sort),最后输出的结果就会有错,一定要把所有可行的路径都存储进一个结构中,在对他们一起排序才行。从树的根开始,走到底部,如果路径上所有节点的权重加起来刚好等于S,则输出这条路径。...
2022-08-30 18:58:38
262
原创 【PAT(甲级)】1052 Linked List Sorting(测试点3,4)
给出链表,要求我们按照key从小到大的顺序重新排列链表。坑的地方在于,他没说如果给出的链表头是-1或者压根就不存在下面的数据里面的时候要输出“0 -1”(测试点4)。我们定义两个结构,一个存储数据,一个存储链表的数据。数组的address就是数组的下标,这样就方便找到next对应的数组,并且当重新排列后,就可以直接输出address来输出了。...
2022-08-28 20:01:59
334
原创 【PAT(甲级)】1051 Pop Sequence(栈的进出使用)
当给出数组当前的数字与栈顶的数字不相同且栈的大小符合题目要求时,就继续入栈;相同时出栈,空栈时出栈。1. 空栈的时候记得入栈,可以避免一进一出的情况下出错;题目要求判断给出的数组是否符合出栈能形成的顺序。2. 每次使用完栈记得清空!...
2022-08-27 21:48:53
228
原创 【PAT(甲级)】1050 String Subtraction(用map<char,int>标记字符)
【PAT(甲级)】1050 String Subtraction详细的解题思路分享
2022-08-27 20:56:01
134
原创 【PAT(甲级)】1049 Counting Ones(与位数以及位数上的数字有关)
【PAT(甲级)】1049 Counting Ones详细的解题思路分享
2022-08-27 20:21:28
232
2
原创 【PAT(甲级)】1048 Find Coins(测试点2,3,4)
碰到这种卡时间的题目,输入输出用scanf,printf,能省一点时间就是一点时间。然后将所给的数字用sort从小到大进行快排,因为要V1最小嘛,而匹配V1的时候,相加要从后面大的数字往前相加,当小于M的时候就说明以经不可能了,直接下一个数字。...
2022-08-26 20:00:33
340
原创 【PAT(甲级)】1047 Student List for Course(超时问题)
给出学生选课信息,按照课程后面跟学生姓名的方式输出。字符串与数字对应的问题,用map。后面存储的记得用vector而不是set,set太耗费时间了。因为要求名字按照字典顺序排列,所以输出的时候要用sort对vector排序一遍。...
2022-08-26 19:18:38
198
原创 【PAT(甲级)】1046 Shortest Distance(距离分析)
所以如上图所示,如果是点1到点4的距离,就应该是7,或者30-7;点2到点5的距离就应该是21,或者31-21。也就是说,假设其实点位start,末点为end,顺时针的距离就是 dis[end-1]-dis[start-1];像这种从一个点到另一个点连续给出路程的题目,节约时间都是用sum把距离加起来的。读取数据的时候就是直接把距离加起来,然后求两点距离就是目的位置减去初始位置。逆时针的距离就是dis[N]+dis[start-1]-dis[end-1]。,所以还可以逆方向走一遍,要求找出最短的路。...
2022-08-26 17:13:30
258
原创 【PAT(甲级)】1045 Favorite Color Stripe(映射转换成FIS)
利用map,重新将给出的数据按照先后顺序重新定义新的数字。例如题目给出的:2 3 1 5 6;这些数字对应的新编号就是:0 1 2 3 4;再将不喜欢的数字去除,这样就可以将后面给出的数字转换成求非递减的最长数列的长度。
2022-08-22 19:04:05
95
原创 【PAT(甲级)】1044 Shopping in Mars(滑动窗口)
【PAT(甲级)】1044 Shopping in Mars(滑动窗口)解题思路分享
2022-08-22 17:06:48
233
原创 【PAT(甲级)】1043 Is It a Binary Search Tree
【PAT(甲级)】1043 Is It a Binary Search Tree二叉搜索树符合以下三点:所有左子树的节点都小于根节点所有右子树的节点都大于等于根节点左右子树都符合二叉搜索树的条件镜像先序就是:根,右子树,左子树;镜像后序就是:右子树,左子树,根;先序就是:根,左子树,右子树;后序就是:左子树,右子树,根。题目给出树的先序输出或者是镜像先序输出,如果不是则输出NO,是的话就输出YES以及对应的后序输出。首先我们构造一棵树,然后用四个相应的数组来存储先序,镜像先序,后
2022-08-22 12:58:49
151
原创 【PAT(甲级)】1041 Be Unique
题目要求的意思是找到给出数字中只出现过一次的数字,如果这种数字不止一个,则按照输入顺序,输出第一个只出现一次的数字。这种问题就用map将数字和出现次数对应起来就可以了。然后再循环输入的数字,如果出现次数为1就直接输出。1. 要输出第一个只出现一次的数字。
2022-08-21 10:27:31
141
原创 【PAT(甲级)】1040 Longest Symmetric String
【PAT(甲级)】1040 Longest Symmetric String首先要整行读取,因为题目中的意思明显把空格也算作字符串记录在数的。用getlin(cin,s)来读取一整行的字符串方便处理。再写一个函数,用来判断字符串是否对称,要从两头往中间来判断,以便于节省时间,
2022-08-20 11:48:38
218
原创 【PAT(甲级)】1039 Course List for Student
【PAT(甲级)】1039 Course List for Student解题思路:题目给出总人数N,总课程数量K(编号1-K)。接下来每行先给出课程编号,和选这门课的人数。最后给出N个查课人数,按照查课的顺序先后输出每个人的选课数量和选课的课程编号。字符串和数字类型匹配的题目,直接用map。然后因为一个课对应多个人,一个人可以选多门课,是一对多。所以用vector来存储。最后输出即可。这一题不难,但是会用到迭代器的思想,可以自己找资料学一下,用起来还是挺简单的。
2022-08-20 10:46:24
144
原创 【PAT(甲级)】1038 Recover the Smallest Number
【PAT(甲级)】1038 Recover the Smallest Number解题思路:题目给出几个数字,让你组合出最小的类型,并且把前置零给去除。如果从数字方面考虑的话就会比较麻烦,所以我们直接换成字符串类型来比较。字符串的小于是当前位小的就排在前面,如果相同则比较后一位。所以只要如下代码就可以解决比较的问题:
2022-08-19 18:06:09
186
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人