自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 问答 (4)
  • 收藏
  • 关注

原创 CBLUEbenchmark代码跑通

4.检查格式是否正确。

2024-03-26 21:44:04 340

原创 I3D代码讲解

I3D网络是视频处理的时候经常使用的网络,最后输出分类的分数和概率。

2023-12-20 15:49:28 559

原创 提取视频光流成帧并写入视频中

【代码】提取视频光流成帧并写入视频中。

2023-12-08 10:12:11 356

原创 华科历年机试题——难点,生僻知识点

2021年2.输入一个占32 3232比特位的十进制正整数,按下述规则输出加密后的十进制整数:设这个整数的二进制表示为x x x x p p p p x x x x e e e e x x x x e e e e x x x x e e e e,将其中标记为eeee的均左移8位,标记为pppp的右移24位,标记为xxxx的位置不变,输出加密后的数的十进制表示Sample Input:1234Sample Output:262864题解:将x, p, e分

2022-02-25 16:51:24 857

原创 豆瓣电影前250名爬虫并写入excel源码

import requestsfrom bs4 import BeautifulSoupfrom openpyxl import Workbookimport timeimport lxmldef get_page(url): headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 S

2022-02-03 00:24:02 619

原创 学生成绩系统(用数据库操作)源码

mysql_util.pyimport pymysqlimport traceback#创造数据库对象class MysqlUtil(): def __init__(self): self.host = 'localhost', self.user = 'root', self.password = 'root', self.db = 'students', self.charset = 'utf8' .

2022-01-25 21:54:16 2180

原创 cin,getline,cin.getline,scanf,gets等问题

1.cin读入一个数的时候,如cin>>s;我们输入s,之后按回车,是为了将s送入缓冲区,但是cin是不读入换行符的,所以换行符没有读入。所以当:cin>>s;getline(cin, str);输入2stringgetline是不会读入string的,因为getline能够读入换行符。所以输出的结果好像getline没有读入一样。2.getline(cin,str,a)是将str读入到cin流中,当a不写时默认遇到换行符停止输入,并将换行符丢弃,如果a写了,如a为

2021-09-08 21:37:04 777

原创 PAT(甲级)2020年秋季考试题解

PAT(甲级)2020年秋季考试1. 7-1 Panda and PP Milk (20 分)这个题目刚开始想的是先找出最轻的熊猫,然后和两边的熊猫体重比较,重则喝的牛奶加100,否则不变。然后按照这个方法对熊猫按体重由小到大来遍历,结果有3 5两个测试点过不去,不知道错在哪里。#include<cstdio>#include<vector>#include<algorithm>using namespace std;struct node{ int

2021-09-07 22:24:52 298

原创 PAT 2019冬季满分题解

7-1 good in c#include<iostream>#include<string>#include<vector>using namespace std;string letter[26][7];void outPut(string a){ for(int j = 0; j < 7; j++) { for(int i = 0; i < a.size(); i++) { cout << letter[a[i

2020-09-04 15:13:30 133

原创 PAT(甲级)2019年秋季考试 7-2 Merging Linked Lists

#include<cstdio>#include<vector>using namespace std;struct node{ int data, address, next;}m[100010];vector<int> a, b;int main(){ int heada, headb, n; scanf("%d%d%d", &heada, &headb, &n); for(int i = 0; i < n; i++

2020-09-03 19:27:17 465

原创 PAT(甲级)2019年秋季考试 7-3 Postfix Expression

#include<cstdio>#include<iostream>#include<string>using namespace std;struct node{ string s; int left, right;}m[30];bool vis[30];string postT(int root){ if(m[root].left == -1 && m[root].right == -1) return "(" + m[root

2020-09-03 19:26:17 94

原创 PAT甲 2019年秋季考试7-4 Dijkstra Sequence

#include<cstdio>#include<vector>#include<unordered_set>#include<cstring>using namespace std;const int maxn = 1e3+10, INF = 1e9;int dis[maxn][maxn], d[maxn];bool vis[maxn];int Nv, Ne;vector<int> link[maxn], a;void Dij

2020-09-03 19:25:18 179

原创 PAT(甲级)2019年秋季 7-1 Forever (20 分)

给出一个数的位数,及各位数之和,判断是否是forerver 数。分析:这里从高位开始,如果左边各位数之和小于等于题目中所给的数字,且当右边所有数均为9时,各位数之和大于所给数字。如给定的位数为5,和为45,则当数字是12xxx,当低位均为9,即12999,各位数之和30依然小于45,说明高位的12应该更大。利用这样的条件进行DFS剪枝。#include<cstdio>#include<string>#include<cmath>#include<vec..

2020-09-03 19:23:50 189

原创 2020pat 春季2、4题解

第二题:题意:由裁判先给出两个数,然后各个选手依次给出一个数,这个数要是之前所给的任意两个数的差而且不能重复给出,否则出局,出局的人下次所给的数字忽略。分析:首先用一个二维数组来存储输入的数字,用一个名为num的set来保存每个选手所给的数,每次将所给的数x与num中的每个数相加来查找两个数的和是否在num中,在则说明x是这两个数的差,否则放入wrong的set中,表示这个选手出局。同时打印出局信息,下一次再输入该选手的信息,如果wrong中有该选手,则跳过。同时用vis标记哪些不在wrong中的

2020-09-01 18:03:56 90

原创 LeetCode KY8 整数的拆分

这里用到了动态规划中的背包问题的解决方法。将dp[i]表示数字i有dp[i]种拆法,因此令dp[0] = 1,表示初始状态为空的情况。#include<iostream>#include<cstring>using namespace std;int n, a[21], dp[1000002];int main(){ for(int i = 1; i <= 20; i++) a[i] = (1 << (i-1)); dp[0] = 1; wh..

2020-08-31 20:56:15 145

原创 Leetcode KY30进制转换

由于题中给出的数字最长可达30位,所以不能单纯的用除法来求二进制,应该以string的形式接收字符串,然后一位一位的来除。例如:128 首先除2余0,再除2余0,除到最后余1,则128的二进制可以写为1000 0000。即把之前所得的余数反过来写。所以这里要设计一个函数来按位除,最终所得的数字一定比原来小。#include<iostream>#include<vector>#include<string>using namespace std;strin..

2020-08-27 19:57:42 134

原创 1137 Final Grading (25分)

1137 Final Grading (25分)错误点:1.刚开始以为未经计算的期末成绩要大于60,后来仔细看题发现是根据题中所给的计算得出最终的期末成绩要大于60;2.以为不存在的成绩就是那些成绩为0,后来看别人的博客发现原来是指不参加的人的成绩,参加了的成绩为0的最终依然显示为0.所以后来用-1来初始化期中期末成绩。刚开始的代码:(测试点4未过)#include<cstdio>#include<algorithm>#include<unordered_map&

2020-08-27 15:00:04 66

原创 1131 Subway Map (30分)

1131 Subway Map (30分)找最少的站点和最少的转乘点路线,这个其实是可以直接用DFS的。但是怎样找最少的转乘路线?假设从a到b到c,只要确定a到b的路线与b到以c的路线不同就可以将转乘路线加1.#include<cstdio>#include<vector>#include<unordered_map>using namespace std;const int maxn = 1e4+10;unordered_map<int,

2020-07-23 18:25:31 118

原创 根据中序和层序建立二叉树

题目描述:给出一个N,表示结点数,然后第二行给出层序遍历,第三行给出中序遍历,求该树的前序遍历。样例:73 5 4 2 6 7 12 5 3 6 4 7 1首先我们可以根据层序的最前面的结点找到根结点,然后下一个结点所在的位置与中序中的位置有关。例如:由层序知根结点是3,然后5是3的子结点。因为在中序中5在3的左边,所以5是3的左结点。然后层序的下一个结点是4,在中序中4在3的右边下一个结点是2,中序中2在5的左边:层序下一个是6,中序中6在3的右边,在4的左边:接下来的两个也是

2020-07-23 15:51:03 4264 1

原创 1103 Integer Factorization (30分)

1103 Integer Factorization (30分)典型的背包问题,找出要放入背包的数据与个数以及规定的重量。而这里的数据是从1开始每个数的p次方,所以不如提前将所有数的p次方存在一个fac容器中,等到用的时候直接取就可以了。这里用DFS,而题中规定不能超过k个,总和要等于n,而且要子序列总和最大。若总和相等,要求找出最大子序列。所以DFS的时候从fac中最大的数开始。#include<cstdio>#include<vector>using namespac

2020-07-19 13:38:20 81

原创 1025 PAT Ranking (25分)

1025 PAT Ranking (25分)这个题刚开始怕会有重复的id, 所以用了一个unordered_map来保存序号,可是写好后发现答案全错,仔细检查了一遍没发现错误。后来直接用一个int型变量cnt来保存序号,反而都对了。始终想不明白问题出现在哪里?刚开始的写法:#include<cstdio>#include<algorithm>#include<vector>#include<iostream>#include<unor

2020-07-16 21:10:21 43

原创 1019 General Palindromic Number (20分)测试点2 4

刚开始用的string来判断是否是回文数,结果有两个测试点过不去,之后发现是有的数可能大于10,这时候无法表示,所以进行了修改。刚开始的写法:#include<cstdio>#include<string>#include<iostream>#include<algorithm>using namespace std;string getNum(int num, int radix){ int r = 0; string res; w..

2020-07-16 17:28:26 474

原创 1153 Decode Registration Card of PAT (25分)

1153 Decode Registration Card of PAT (25分)刚开始写的时候,傻乎乎的写考虑了所有A B T的情况,在type=2的时候,type=3的时候又分别考虑,考虑了很多条件,后来越来越混乱。觉得太复杂,写不下去。然后看了一下柳神的代码,才发现原来可以写得这么简单。事实上只要关心考生考号的某个部分与所给的字符串相等时就可以把该考生放进一个容器中了。而type=1和type=3的情况是差不多的,都是要输出两个元素, 一个降序一个升序,而刚好降序的都是int型, 升序的

2020-07-14 20:09:36 158

原创 1150 Travelling Salesman Problem (25分)

1150 Travelling Salesman Problem (25分)这题刚开始想用一个数组来记录访问的每个点的次数,然后再检查是否符合条件。后来看了柳神的代码,发现这种方式过于麻烦。要检验是否访问过所有点,只需要用一个set< int > s将访问过的点都插入,最后再检查s的size,如果size == n(即所有点个数)则说明访问过所有点,其次还要用一个vector< int > v来存储所有访问点,这样如果第一个点等于最后一个点说明是一个环。再检查v的size是

2020-07-14 15:13:16 100 1

原创 1145 Hashing - Average Search Time (25分)

用平方探测法计算平均查找时间;位置用(x+j*j)%Msize来查找,其中j是步长,小于等于Msize, x是要插入的位置。用一个数组保存各个位置上的数,如果某个位置数字为0代表没有数字在这个位置上,则查找结束,或者j超过Msize,查找也结束。之前错以为位置用x%Msize+j*j来查找,导致无法通过样例。#include<cstdio>const int maxn = 10010;int num[maxn];bool isPrime(int x){ if(x <= ..

2020-07-14 10:27:56 140

原创 1133 Splitting A Linked List (25分)

1133 Splitting A Linked List (25分)#include<cstdio>#include<algorithm>using namespace std;struct node{ int data, next, pos, rank, address; bool inlist;}m[100010];bool cmp(node a, node b){ if(a.inlist != b.inlist) return a.inlist >

2020-07-11 08:50:48 106

原创 1130 Infix Expression (25分)

#include<cstdio>#include<vector>#include<string>using namespace std;int n;struct node{ char data[12]; int left, right;}m[30];bool have[30];vector<string> res;void DFS(int index){ if(index == -1) return; if(m[index].le

2020-07-10 10:23:42 52

原创 1096 Consecutive Factors (20分)

1096 Consecutive Factors (20分)注意:这里寻找连续的乘积上限为2, 下限为根号n,否则测试点4过不了。当找不到一个因子的时候,如n=3的时候就可以直接输出n。#include<cstdio>#include<cmath>#include<algorithm>using namespace std;typedef long long LL;int main(){ int n, num, maxN = 0; scanf("%d"

2020-07-01 09:49:02 115

原创 1088 Rational Arithmetic (20分)

1088 Rational Arithmetic (20分)#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;ll gcd(ll a, ll b){ if(b == 0) return a; else return gcd(b, a%b); } struct Fraction{ ll up, down; }a, b, c; Fraction red(F

2020-06-30 09:10:30 75

原创 1086 Tree Traversals Again (25分)

方法一:#include<cstdio>#include<stack>#include<vector>#include<cstring>using namespace std;vector<int> In, post, pre;stack<int> origin;void getPost(int preL, int preR, int inL, int inR){ if(preL > preR) ret...

2020-06-27 09:41:25 62

原创 1078 Hashing (25分)

注意用平方探测法的时候步长j要小于表长。#include<cstdio>#include<algorithm>using namespace std;bool isprime(int x){ if(x <= 1) return false; for(int i = 2; i*i <= x; i++) if(x % i == 0) return false; return true;}int a[10010];bool vis[10010];..

2020-06-22 10:11:06 173

原创 1077 Kuchiguse (20分)

分析:注意这里是一行一行的输入,所以要用getline。注意第一个数字与第一行字符之间要用getchar()接收空格。刚开始的想法是先将前两个反转,然后找出公共前缀,然后接下来每接收一行就一行行的比较是否有公共前缀,结果有一个测试点过不去。#include<iostream>#include<string>#include<algorithm>using namespace std;int main(){ string s,t; int n, fla..

2020-06-22 09:24:02 136

原创 1076 Forwards on Weibo (30分)

刚开始用DFS结果有两个测试点过不了:#include<cstdio>#include<vector>#include<queue>#include<algorithm>using namespace std;vector<int> v[1010];bool vis[1010];int n, level;void DFS(int s, int &num, int depth){ if(depth > leve..

2020-06-21 22:16:00 141

原创 1069 The Black Hole of Numbers (20分)

1069 The Black Hole of Numbers (20分)#include<cstdio>#include<algorithm>using namespace std;int to_int(int num[]){ int sum = 0; for(int i = 0; i < 4; i++) sum = sum*10+num[i]; return sum;}void to_array(int n, int num[]){ for(int

2020-06-19 11:45:16 62

原创 1067 Sort with Swap(0, i) (25分)

1067 Sort with Swap(0, i) (25分)分析:由于每次只能用0来交换,使最后的序列变为递增,所以最好的办法是每次看0处在什么位置,如果是5号位,就将5与0交换,这样每个数字都只要一次就能回到原来的位置。但是如果0刚好在0号位,那么需要在找到一个没换好的位置,将这个位置与0交换,再重新进行之前的步骤。#include<cstdio>#include<algorithm>using namespace std;const int maxn = 1e5+10

2020-06-19 09:53:52 119

原创 1061 Dating (20分)

1061 Dating (20分)注意:week是从星期一到星期日,所以相应的字母只能是A~G。时间只能是0 ~ 24小时,则10 ~ 24只能是A ~ N。#include<cstdio>#include<iostream>#include<string>using namespace std;string s[8] = {"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};bool vis[256];int

2020-06-18 09:51:27 105

原创 1060 Are They Equal (25分) 与 1073 Scientific Notation (20分) 科学计数问题

1060 Are They Equal (25分)分析:题目中所给的数据可以分为两种情况:0.abcdef…abcd.efgh…而最终要显示的数据是‘0.’+数字的主体部分+’*^’+小数点的位置。所以首先要找出小数点的位置和主体部分的数字。在1的情况下,数字可能是000.000133;这样我们首先要处理前导0,以及小数点部分之后的0,因为最终形式是0.133,所以我们还需要计算小数点的位置,小数点后面有几个0,e就自减几次,这样就可以得到最终的指数部分。在2的情况下,数字可能是00123.

2020-06-18 08:47:34 74

原创 1056 Mice and Rice (25分)

1056 Mice and Rice (25分)题目:按序号0~np-1给定np个老鼠的体重,然后再给出老鼠比赛的序号,如给出6 0 8则说明6号、0号、8号老鼠进行比较。每比较出一个最大的老鼠,其余的老鼠排名相同,而最重的老鼠进行下一轮,直到找到第一的老鼠。分析:首先每轮输了的老鼠的排名为group+1,因为假设有4个小组,则最后有4个人晋级, 而剩下的就都是第5名。其次由于要不停的进行比较,则可以设置一个队列,将赢了的老鼠放进队尾等待下一轮比较。一般像这种模拟题大多都是用队列来做。#include

2020-06-14 10:27:16 79

原创 1054 The Dominant Color (20分)

1054 The Dominant Color (20分)#include<cstdio>#include<unordered_map>using namespace std;unordered_map<int, int> cnt;int p[810][610];int main(){ int m,n; scanf("%d%d", &m, &n); int half = m*n/2, val; for(int i = 0; i &lt

2020-06-13 11:53:32 70

原创 1053 Path of Equal Weight (30分)

1053 Path of Equal Weight (30分)第一种写法:先用DFS把树的每一条路径遍历一遍,如果这条路径遍历完了而且权值和为所给定的值就把这个路径保留下来,到最后把所有的路径排序然后输出:#include<cstdio>#include<vector>#include<algorithm>using namespace std;int w[110];bool vis[110];vector<int> v[110], ans[

2020-06-13 11:41:35 56

空空如也

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

TA关注的人

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