考研复试机试练习
华小锐
爱学习,爱运动,爱技术
展开
-
C++利用自带的sort函数重写比较规则后对结构体进行排序-王道机试
/*输入N输入N组数据(姓名,年龄,成绩)输入按照成绩从高到低排序如果成绩相同的情况下,则按照名字的字母排序,再相同的话按照年龄排序 */#include "iostream"#include "algorithm"#include "string" using namespace std; typedef struct student{原创 2018-01-23 10:28:46 · 2339 阅读 · 0 评论 -
点菜问题
题目描述 北大网络实验室经常有活动需要叫外买,但是每次叫外买的报销经费的总额最大为C元,有N种菜可以点,经过长时间的点菜,网络实验室对于每种菜i都有一个量化的评价分数(表示这个菜可口程度),为Vi,每种菜的价格为Pi, 问如何选择各种菜,使得在报销额度范围内能使点到的菜的总评价分数最大。 注意:由于需要营养多样化,每种菜只能点一次。输入描述: 输入的第一行有两个整数C(1 &l...原创 2018-03-25 08:30:23 · 507 阅读 · 0 评论 -
使用C++中的map实现九度中产生冠军题目
#include "iostream"#include "map" #include "string"using namespace std;/*3Alice BobSmith JohnAlice Smith5a cc dd eb ea d0*/ /*map的用法 */int main(){ int n = 0; while(cin>>n...原创 2018-03-13 16:00:17 · 280 阅读 · 0 评论 -
路径最短问题算法总结和实现(Floyd,Dijkstra,SPFA)
题目描述:求两个点之间的最短路径输入:两个整数n,m(1<=n,m<=100)n的含义是节点的个数,m的含义是边的个数,接下来的m行输入三个整数i j c,分别表示开始结束节点和之间的费用输出:从1到n节点之间的路径长度Floyd算法:使用二维数组ans[i][j]保存从i到j的最短路径,不断在i和j之间插入节点k,检验k的到来是否路径减少,路径减少则更新ans[i][j]数组。适用于...原创 2018-03-13 10:37:23 · 346 阅读 · 0 评论 -
九度对称平方数,使用字符串代替数位拆解
/*题目描述:打印所有不超过n(n<256)的,其平方具有对称性质的数。如11*11=121输入:无任何输入数据输出:输出具有题目要求的性质的数。如果输出数据不止一组,各组数据之间以回车隔开。*/#include "stdio.h"#include "string.h"using namespace std;//使用字符串代替数据拆解判断数据是否是轴对称的数据boo...原创 2018-03-11 21:40:02 · 142 阅读 · 0 评论 -
中序遍历和层序遍历还原二叉树
递归是将大问题分解成小问题求解,递归函数中输入是层序遍历和中序遍历,层序遍历的第一个值一定是根通过根和中序遍历将树分成左根右的情况,左子树在层序遍历中找到自己对应的层序遍历进行下一次递归,右子树同理#include "stdio.h" using namespace std;struct Node{ int data; Node *leftN; Node *rightN;} nod...原创 2018-03-11 21:20:26 · 3691 阅读 · 0 评论 -
贪心算法跳跃游戏
/**非负整数的数组,数组中的数字代表的是你能跳跃的距离。*问题是根据当前的数组中的数据信息,是否可以跳跃到最后*贪心算法,怎么贪心*最终是竭尽所能跳的最远处*每次走一个位置的时候能跳的最远,那么最终的时候一定是跳的最远的*因此用一个变量记录当前可以走的长度,另一个变量记录当前的数组下标的位置 *每次更新数组下标的时候更新可以跳的跳数 */#include "i原创 2018-01-31 09:40:03 · 600 阅读 · 0 评论 -
C++算法函数库sort实例
#include "stdio.h"#include "algorithm"using namespace std;/* 使用C++内置的sort函数实现多组数据的排序 输入: 4 1 2 7 4 输出: 1 2 4 7或7 4 2 1 函数停止的条件是文件的末尾或者输入Ctrl+z */ //定义sort函数的参数函数bool cmp(int x,int y)原创 2018-01-06 23:57:58 · 435 阅读 · 0 评论 -
n个整数输出前m大的数据C++--王道机试
/* 给你n个整数,请按从大到小的顺序输出其中前m大的数据 数据是[-500000,500000]之间的整数 思路可以进行平移的操作 0~1000000 定义一个整形的数组arr[1000001]并初始化为零,之后将数据出现的个数存入到数组中 */#include "iostream"using namespace std;int arr[1000001] = {0};//为原创 2018-01-23 16:56:28 · 1793 阅读 · 0 评论 -
利用hash空间换取时间的思想统计同成绩学生人数C++--王道机试
/* 利用hash的思想,空间换取时间,来统计同成绩学生的人数 主要解决的问题是有固定个数的数据的统计 例如本题目中,学生的成绩都是0~100分,这样就可以定义一个数组grade[101] 这样的情况下,只需要将此成绩的学生计入到数组中即可 */#include "iostream"using namespace std;int main(){ int n = 0;//定义学原创 2018-01-23 16:08:05 · 227 阅读 · 0 评论 -
两个日期之间的天数--王道机试
#include "iostream"#include "string"#include "math.h"#include "stdio.h"using namespace std;/* 输入两个8位的日期数据,然后输出这两个日期之间天数的差值, 需要注意的是相邻的两天的时间算是两天。 用一个数组存放从最开始计时间的日期开始到某个特定日期所经历的天数 数组Days[5001][原创 2018-01-23 15:30:29 · 216 阅读 · 0 评论 -
最长递增、递减子序列(导弹拦截问题)动态规划练习
/* *最长递增子序列 *找到给定的序列中的最长递增子序列 *采用动态规划的思想,首先给一些已经知道的量赋值,之后 *根据已知的量求当前的量,当前的量需要和以前的量进行对比, *如果当前的值比以前的要大的话,以前位置处的序列长度加1 *如果找完了也没找到比他要小的数据的话,此位置的最长递增子序列就是1 *每次往前找都找前面整个序列最大的 */#include "iostream原创 2018-01-30 19:51:24 · 592 阅读 · 0 评论 -
动态规划N阶楼梯上楼问题
/** *输入一个整数n(1<=n<90) *每次可以上一个或者两个台阶 *输出有多少种上楼的方式 *注:要求使用非递归的方式求解 *想法,定义一个数组用于存放上楼方式的数量,数组的下标值是台阶的数量 *当前的台阶的数量是前一个和前前一个的数量总和 *这个也符合动态规划的思想,先进行一些小的直接能看出来的进行赋值,之后 *在基础上进行求解 *程序注意点,边原创 2018-01-30 18:26:30 · 591 阅读 · 0 评论 -
单调递增子序列-合唱队列
题目描述N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学不交换位置就能排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK, 则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+1 > … > TK (1 <= i <= ...原创 2018-03-25 11:09:20 · 476 阅读 · 0 评论