机试
julia7_
keep coding
展开
-
(2016-1)求最大公共字串长度
问题描述:给定两个字符串,求最大公共字串的长度,长度小于1000分为两种问题:要求计算连续最长字串的长度;或者不连续如下按照寻找连续的字串理解样例输入:输入:1111hello22221133hello444输出:5思路:暴力解法:使用两个for循环,用第一个字符串依次去匹配第二个,不断更新最大字串长度DP:建立二维数组 dp[N][N] ,令dp...原创 2019-02-27 18:48:59 · 501 阅读 · 0 评论 -
?(2017-3)选边使图连通
问题描述:一个无向图,顶点为N个,顶点编号为1~N,其中M条边已给定,现在要从K条备选边中选出若干条,使得整个图连通,且选出的边权值和最小。(这里的M是图中已经存在的边?K条备选边应该是要给出顶点和权值的呀?要想使权值最小并且连通......)输入:第一行:输入三个整数N(N<100), M, K第二行:K个整数表示备选边的编号然后是是M行,每行三个数字:u,v,d(...原创 2019-02-27 11:38:36 · 352 阅读 · 0 评论 -
(2012-2)求二叉树最大叶子间距
问题描述:二叉树问题。比如节点是ABCDE编号是01234,给出每个左右子树的编号。求最大叶子间距。样例输入:输入1(如下左图):31 2-1 -1-1 -1输出1:2输入2(如下右图):61 -12 34 -1-1 5-1 -1-1 -1输出2:4思路:本题容易进入一个误区:认为最大叶子间距就是左右子树的高度之和。但...原创 2019-03-03 17:24:20 · 417 阅读 · 0 评论 -
(2012-3)字符串的重复输出(水题)
题目描述:给一个字符串比如ABC 再给一个整数比如3.输出AAABBBCCC就行了#include <string>#include <iostream>#include <cstdio>using namespace std;int main(){ string str; getline(cin, str); int...原创 2019-03-03 17:36:29 · 381 阅读 · 0 评论 -
?(2011-1)求三个字符串的最大公共子串
问题描述:输入3个子串, 输出这3个子串的最大公共子串样例输入:abcd acb abcab代码来源博客https://blog.csdn.net/qq_30339595/article/details/79558755#include<cstdio>#include<iostream>#include<map>#incl...原创 2019-03-03 18:04:55 · 1252 阅读 · 1 评论 -
(2011-2)二叉树中序与后序求层次遍历
问题描述:参考A1020 Tree Traversals (25 分)输入树的中序和后序排列,输出树的层次遍历Sample Input:72 3 1 5 7 6 41 2 3 4 5 6 7Sample Output:4 1 6 3 5 7 2代码如下:#include <cstdio>#include <cstring>#i...原创 2019-03-03 18:17:12 · 298 阅读 · 0 评论 -
(2017-2)9位ISBN,求其校验位
问题描述:给定一个9位数字的ISBN,求其校验位。ISBN格式为2-02-033598,校验位的计算方法如下:从左到右依次将各位数字乘10,9,8,……,2,求出其和S,作模运算得M=S mod 11。若11-M在1和9之间,校验位即为该数字;若11-M等于10,校验位为X;11-M等于11,校验位为0。输出添加校验位的ISBN,如2-02-033598-0。样例输入:输入1:2...原创 2019-02-27 12:16:35 · 788 阅读 · 0 评论 -
STL 问题归纳
Vector:特点:变长数组,一般在元素个数不确定的情况下使用 添加头文件 #include <vector>, 以及 using namespace std; 定义:vector<typename> name; 相当于一位数组 name[SIZE], 只不过其长度可以根据需要进行变化,比较节省空间,“变长数组” vector 数组定义:vector<typ...原创 2019-03-08 20:25:57 · 293 阅读 · 0 评论 -
2018年工研院机试题
题目1:(水题)输入两个集合,分别求其交集和并集中元素的个数,每个集合中可能存在相同的元素,而最终的交集和并集中应该不存在。输入:4 53 4 7 34 6 3 2 6输出:2 5代码:用set实现即可,注意set的用法#include <cstdio>#include <set>using namespace std;in...原创 2019-03-13 23:19:08 · 419 阅读 · 2 评论 -
A - 二叉查找树的层序遍历
Problem Description给定一棵二叉查找树(BST)的插入序列,输出它的层序遍历序列。Input第一行给出一个正整数N(1<=N<=10^5),表示二叉查找树的结点个数。第二行包含N个唯一的整数,每个数都在[0,10^9]范围内。数据为随机生成。Output输出一行用空格隔开的二叉查找树的层序遍历序列。行末不允许有多余的空格。Sample In...原创 2019-03-06 21:08:23 · 918 阅读 · 0 评论 -
B - 进击的二叉查找树
Problem Description给定1~N的两个排列,使用这两个排列分别构建两棵二叉查找树(也就是通过往一棵空树中依次插入序列元素的构建方式)。如果这两棵二叉查找树完全相同,那么输出YES;否则输出NO。之后,输出第一个排列对应的二叉查找树的后序序列、层序序列。Input每个输入文件中一组数据。第一行1个正整数N(1<=N<=30),表示二叉查找树中的结点个数。...原创 2019-03-06 21:10:28 · 145 阅读 · 0 评论 -
? C - 宇宙树
Problem Description在传承至今的典籍中认为,每个宇宙都是十种宇宙中的一种:炎之宇宙、光之宇宙、冰之宇宙、风之宇宙、雷之宇宙、土之宇宙、水之宇宙、木之宇宙、钢之宇宙、暗之宇宙,各表示了一个宇宙内部的主要元素。在最初始的大爆炸之后,在混沌中产生了最初的若干个宇宙,这些宇宙的类型是以上十种之一,可能相同,可能不同。从这些宇宙开始,每过一个纪元,各个宇宙都有可能孕育出多个新的宇宙(类...原创 2019-03-06 21:32:49 · 185 阅读 · 0 评论 -
机试知识点准备
目录复习注意:int范围:long long 范围:int转double输出:循环读入,直到文件结尾 while() EOF:进制转换问题模板:将int数字存入int数组中:int型数组转换为int数字:scanf函数的返回值问题:scanf函数与getline函数:reverse函数:getchar() 函数的使用:strcmp函数:小写字...原创 2019-03-04 13:09:30 · 638 阅读 · 0 评论 -
数学问题归纳
最大公约数:证明可知:a与b的最大公约数 与 b与 a%b 的最大公约数相同int gcd(int a, int b){ if(b == 0) return a; else return gcd(b, a % b);}最小公倍数:已知a, b 求得的最大公约数为 c, 则最小公倍数为 ab / c分数的四则运算:代码模板:...原创 2019-03-08 12:03:31 · 134 阅读 · 0 评论 -
(2019-01)日期处理-计算天数之差
题目描述:输入日期格式:YYYYMMDD,求与20190205的相隔的天数。输入20190208输出3代码:#include <cstdio>#include <iostream>#include <algorithm>using namespace std;//month[2][0]平年, month[2][1]闰年int m...原创 2019-03-18 14:38:48 · 1695 阅读 · 0 评论 -
(2018-2)解一元一次方程
原文出处 https://blog.csdn.net/vir_lee/article/details/80377378#comments题目描述:解方程,给定一个字符串,代表一个一元一次方程。如果有解求解,输出格式“x=数字“,如果解的个数无穷,输出 “infinite solutions”。如果没有解输出“no solution”,字符串长度不超过 256 。样例输入:输入1:...原创 2019-02-27 11:14:54 · 2307 阅读 · 0 评论 -
(2012-1)1000名求前30%
问题描述:排序问题:1000个成绩输出前30%。我这里输入十组数据,输出前3个思路:采用堆排序最佳。方法一:思路:采用堆排序,对1000个数据建大顶堆,输出堆顶最大值,调整300次,依次输出堆顶元素,这就是前300名;复杂度可以达到 nlogn,但是本题中似乎是 klogn之后又看到 topK 问题的解法,时间复杂度为 nlogk, 不知道是否优化#includ...原创 2019-03-03 13:27:39 · 432 阅读 · 0 评论 -
(2013-2)A Famous ICPC Team(四个小正方形放入大正方形)
问题描述:Mr. B, Mr. G, Mr. M and their coach Professor S are planning their way for the ACM-ICPC World Finals. Each of the four has a square-shaped suitcase with side length Ai (1<=i<=4) respectiv...原创 2019-03-03 12:10:25 · 420 阅读 · 0 评论 -
(2018-3)骨牌问题
问题描述:有2*n 的地板,用1*2和 2*1 的骨牌进行铺地板。问共有多少种情况。结果对 999983 取余,1<=n<=10000样例输入:输入:6输出:13思路:DP问题:找规律可以发现满足斐波那契数列dp[1] = 1, dp[2] = 2, dp[3] = 3, dp[4] = 5, ...定义一维dp数组,存放已经计算过的结果...原创 2019-02-27 19:21:33 · 934 阅读 · 0 评论 -
(2016-2)后缀序列求值
问题描述:给定一个后缀序列,要求求值,只有加减样例输入:输入:123++4-输出:2思路:简单题遇到数字,转为 int 型存入栈,遇到操作符,弹出栈顶的两个元素,运算即可。最后的结果为栈顶元素后缀相关知识:栈的应用之表达式求值(后缀式运算)#include <string>#include <iostream>#inc...原创 2019-02-28 20:25:36 · 473 阅读 · 0 评论 -
(2016-3)字符串的哈夫曼编码长度
问题描述:给定一个字符串(长度不超过100),求哈夫曼编码的最短长度样例输入:输入1:abbcccdddd输出1:19输入2:we will we will r u输出2:50思路:本题如果真要用哈夫曼来建树,计算值会非常复杂。首先要能够发现规律:哈夫曼树的编码长度等于各个叶节点权值与路径长度乘积之和,同时这个值等于非叶节点之和。采用...原创 2019-03-01 13:31:26 · 7805 阅读 · 0 评论 -
(2015-1)长方形中的正方形
题目描述:给出长方形的长和宽,每次从长方形里撕去最大的正方形,输出最后能得到多少正方形样例输入:输入:3 4输出:4代码:#include <cstdio>#include <algorithm>using namespace std;int main(){ int a, b; //a 长 , b 宽 sc...原创 2019-03-01 14:54:45 · 817 阅读 · 0 评论 -
(2015-2)a与b得到c
问题描述:(水题)给出a,b,c(3个整数),判断a,b能否通过+-*/得到c,ab可以交换位置,可以输出YES,不行输出NO样例输入:输入:3 8 2输出:NO思路:当为除法时,要注意读入的为int型整数,如果除法之后有余数,算出的值仅保留整数部分,因此要判断是否有余数。如上样例中,如果不判断余数,会输出YES#include <cstdio>...原创 2019-03-01 15:06:06 · 665 阅读 · 2 评论 -
?(2015-3)优先队列的实现
题目描述:ADD N P:往队列里加入id为N的优先级为P的任务NEXT:输出下一个最高优先级的任务的id,如果优先级相同输出id小的任务,若队列中没有任务输出-1REMOVE N:移除id为N的任务COUNT:输出队列中的任务数量思路1:采用set实现,但是不行...不会#include <cstdio>#include <string>...原创 2019-03-01 18:56:56 · 392 阅读 · 2 评论 -
(2014-1)二分查找的二分次数
问题描述:大家一定都能熟练掌握二分查找啦!那么来计算二分的次数吧!约定二分的中点mid = (left + right) / 2。输入:第一行输入一个整数N(N<=10000)。第二行输入N个升序整数。第三行输入一个待查找的整数(必定在第二行中出现过)。输出:输出二分查找该整数时,进行过多少次二分。输入样例:输入1:518 53 54 74 99 5...原创 2019-03-02 10:23:42 · 3182 阅读 · 0 评论 -
(2014-2)计算两个字符串的编辑距离
问题描述:把两个字符串变成相同的三个基本操作定义如下:1. 修改一个字符(如把a 变成b)2. 增加一个字符(如abed 变成abedd)3. 删除一个字符(如jackbllog 变成jackblog)针对于jackbllog 到jackblog 只需要删除一个或增加一个l 就可以把两个字符串变为相同。把这种操作需要的最小次数定义为两个字符串的编辑距离L。编写程...原创 2019-03-02 12:38:26 · 1275 阅读 · 0 评论 -
(2014-3)二叉树遍历
问题描述:输入一棵二叉树,输出树的前、中、后序遍历结果。输入一个整数N(N<= 10000),表示树中有N个结点(编号0~N-1)。接下来N行,依次为结点0~结点N-1的左右孩子情况。每行3个整数,F,L,R。L,R为F的左右孩子。L,R如果为-1表示该位置上没有孩子。分三行分别输出树的前中后序遍历。同一行中的数字,用一个空格间隔。输入样例:输入:50...原创 2019-03-02 13:30:53 · 529 阅读 · 0 评论 -
机试题目分类
简单模拟:(2018-1)求众数(水题):map存储,存储出现次数(2017-1)中位数(水题):数字个数的奇偶分开讨论,注意偶数时求中间两数的平均值,若除不尽,要四舍五入(2017-2)9位ISBN,求其校验位(水题):输入到字符数组,转化到int数组,按照题目要求计算(2015-1)长方形中的正方形(水题)(2015-2)a与b得到c(水题)(2013-2)A Famo...原创 2019-02-26 17:02:51 · 421 阅读 · 0 评论 -
(2018-1)求众数
问题描述:众数就是一个序列中出现次数最多的数字。 如果不唯一,则输出小的那个值。样例输入:第一行给出N(1<=n<=10^5),第二行给出N个数字,每个数字在int范围内输入1:810 3 8 8 3 2 2 2输出1:2输入2:53 3 2 4 2输出2:2思路:要注意到题目中数字的范围为int之内,所以直接开数组记...原创 2019-02-26 18:16:38 · 478 阅读 · 0 评论 -
(2014-4)Hanoi 塔问题
问题描述:Hanoi 塔问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着64 个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。请编写程序,把A 柱上的n 个金片,搬动到C 柱(中间可以使用B 柱),使得搬动...原创 2019-03-02 18:48:36 · 280 阅读 · 0 评论 -
(2017-1)中位数
问题描述给定一个整数序列,求中位数。如果序列个数为奇数,中位数为升序的中间位置,如果是偶数,这位升序的中间两个数的平均值。输入输入包含多组测试数据,每一组第一行为n(n<10^4)表示这个序列的个数,接下来有n个整数k(0<k<2^31-1)输出输出这个序列的中位数样例输入1:52 1 4 3 5样例输出1:3样例输入2:41...原创 2019-02-27 10:05:31 · 678 阅读 · 0 评论 -
(2013-1)字符串匹配输出所有匹配pos
问题描述:对于主串M和模式串P,找到P在M中出现的所有子串的第一个字符在P中的位置。P中第一个字符所在的位置为0。首行的数字表示有多少组字符串。样例输入:输入:2ababababaababaaaaaa输出:0 2 40 1思路:从头在m中匹配p,找到匹配的第一个字符串pos,继续从pos+1开始下一次匹配知识点:stringstr.find...原创 2019-03-03 11:46:37 · 465 阅读 · 0 评论 -
PAT刷题注意
不论怎样的问题,有一点思路,就要去尝试,写错了不要紧,不要怕。gets函数不可使用接收一段字符串时(其中可能含有空格),其中getline属于string流,接收一个字符串,遇到‘\n’结束。简单使用方法如下:#include <iostream>#include <string>using namespace std;int main(){ ...原创 2019-01-19 13:14:25 · 576 阅读 · 0 评论