刷题记录
文章平均质量分 83
记录在各个平台的基础算法练习
crazy637
JUST DO IT CRAZY
展开
-
蓝桥-小数第n位
题意:我们知道,整数做除法时,有时得到有限小数,有时得到无限循环小数。如果我们把有限小数的末尾加上无限多个0,它们就有了统一的形式。 在上面的约定下,求整数除法小数点后的第n位开始的3位数。输入要求:一行三个整数:a b n,用空格分开。a是被除数,b是除数,n是所求的小数后位置(0<a,b,n<1000000000)。举例: 输入1 8 1。即1/8 = 0.125000...原创 2019-03-22 21:26:22 · 564 阅读 · 2 评论 -
51nod-数数字-02
题意:统计一下aaa⋯aaa (n个a)×b 的结果里面有多少个数字d,a,b,d均为一位数。输入要求:第一行有一个整数T,表示测试数据的数目。(1≤T≤5000) 接下来有T行,每一行表示一组测试数据,有4个整数a,b,d,n。 (1≤a,b≤9,0≤d≤9,1≤n≤10^9)。举例:输入23 3 9 103 3 0 103333333333(n个3)* 3...原创 2019-02-27 21:06:07 · 281 阅读 · 0 评论 -
51nod-首尾排序法-01
题意:有一个长度为n的数组 p1, p2, p3, ⋯, pnp1, p2, p3, ⋯, pn ,里面只包含1到n的整数,且每个数字都不一样。现在要对这个数组进行从小到大排序,排序的时候只能是把一个数字拿过来放到数组末尾或者开头,问最少要操作几次才能使得这个数组从小到大排序输入要求:第一行一个整数n (1≤n≤100000),表示数组的长度。 第二行有n个整数 pi (1≤pi≤n, 如果 ...原创 2019-02-26 12:15:45 · 668 阅读 · 0 评论 -
小米OJ-跳跳看-05
题意:给定一个数字串 (均为正整数),现在需要从第一个数跳跃到最后一个,所在位置的数字表示可以跳跃的最大步数。求出从第一个位置跳跃到最后位置所需的最少步数。输入要求:一个数字串,每个数字用空格隔开。举例: 输入 1 2 3 4 5 6 7。需要从第一位 1 跳到最后一位 7,则 1->2->4->7,最少需要3步 。思路: 贪心策略,要想步骤最少。需在每次选择从当前位...原创 2019-02-19 01:23:58 · 206 阅读 · 0 评论 -
小米OJ-数组差-04
题意:给定一个整数数组,找出两个不重叠的子数组A和B,使两个子数组元素和的差的绝对值 |SUM(A) - SUM(B)| 最大。 返回这个最大的差值。输入要求:使用逗号“,”分隔的一个整数数组。举例: 输入1,2,-3,1。即数组{1, 2, -3, 1},可以从中找出两个子数组A = {1, 2}与B = {-3},这两个子数组的元素和分别为 SUM(A) = 3,SUM(B) = -3...原创 2019-02-12 23:06:42 · 323 阅读 · 0 评论 -
小米OJ-组长偏头痛-03
题意:临近年底,组长突然患上了偏头痛的毛病,因为他最近从产品经理那里收到了好多需求,需要按排组员尽快完成。 现在用一个数组来表示各个需求需要完成的时间,数组A包含n个元素,表示n个需求以及各个需求需要的时间。现在有k个组员,因为需求有相关性,每个人只能完成连续一段编号的需求,比如A[1],A[2]由第一个人完成,但是不能A[1],A[3]由第一个人完成,求最少需要的时间完成所有需求。输入要求:...原创 2019-02-10 01:26:43 · 145 阅读 · 0 评论 -
小米OJ-重排数组求最大和-02
题意:假设有一个n元素的数组(数组的元素索引从1开始),针对这个数组有q个查询请求,每个请求由一对整数li,ri组成,表示数组上一个合法索引区间(1≤li≤ri≤n)。我们可以根据查询的索引来计算出范围内的所有数组元素的一个总和,计算时也需要包含li和ri位置的元素。 通过重新排序数组元素,可以使得这些查询的总和最大。求问我们可以计算的最大总和值是多少。输入要求:使用分号(";")分隔数据。 ...原创 2019-02-04 01:31:10 · 293 阅读 · 0 评论 -
HDOJ-A+B问题-大数处理
题意: 给出两个长整型A,B,要求计算A+B的值。输入要求:有n组数据输入。思路: 大数处理,对A,B逆序处理,使其对位且从低位开始运算;设立变量保存进位情况;求得结果后再逆序使得结果顺序为高位至低位。代码:/** HDOJ 大整数的加法*/#include <bits/stdc++.h>using namespace std;const int maxn...原创 2019-01-29 02:41:43 · 267 阅读 · 0 评论 -
小米OJ-dreamstart 的催促-01
题意:有一天集训队的学弟们正在计算一堆数,但是 dreamstart 感觉他们算的太慢了,就让他们坐在一起想出一个快速计算的方法,但是由于他们一时想不出来,想让你帮助他们。他们说现在有一个数列,要算出第 i 个数的 i^i次幂并且把每个数计算出来的值加到一起,最后答案模 10000019。聪明的你可以帮助他们吗?输入要求:第 1 个数字为整数n,1<=n<=10^5;余下 n 个数...原创 2019-01-29 02:27:49 · 239 阅读 · 0 评论 -
使序列有序的最少交换次数-任意交换元素位置
好原创 2019-01-26 00:06:33 · 9711 阅读 · 1 评论 -
PAT-Tree Traversals Again -前序中序求后序
原题:An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, the s...原创 2018-08-02 18:51:21 · 219 阅读 · 0 评论 -
对结构体的灵活运用
题意:计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科学的评价计算机程序设计人才,为企业选拔人才提供参考标准(网址http://www.patest.cn)。每次考试会在若干个不同的考点同时举行,每个考点用局域网,产生本考点的成绩。考试结束后,各个考点的成绩将即刻汇总成一张总...原创 2018-04-18 21:33:06 · 309 阅读 · 0 评论 -
PTA-任务调度的合理性 - 拓扑排序
题意:假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可以同时开设,因为它们有先后的依赖关...原创 2018-04-12 21:40:22 · 1371 阅读 · 0 评论 -
PTA-是否同一棵二叉搜索树
给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数N (≤10)和L,分别是每个序列插入元素的个数和需要检查的序列...原创 2018-03-22 10:28:08 · 1361 阅读 · 0 评论 -
PTA-两个有序链表序列的合并
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的并集新非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。代码: /* @两个有序链表序列的合并 */#include <i...原创 2018-03-20 19:00:49 · 5011 阅读 · 6 评论 -
PTA-两个有序链表序列的交集
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出两个输入序列的交集序列,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。代码:/* @两个有序链表序列的交集*/#include<cstdi...原创 2018-03-20 18:50:34 · 970 阅读 · 1 评论 -
PTA- 两个有序序列的中位数
已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0,A1,⋯,AN−1的中位数指A(N−1)/2的值,即第⌊(N+1)/2⌋个数(A0为第1个数)。输入格式:输入分三行。第一行给出序列的公共长度N(0<N≤100000),随后每行输入一个序列的信息,即N个非降序排列的整数。数字用空格间隔。输出格式:在一行中输出两个输入序列的...原创 2018-03-20 18:47:55 · 2288 阅读 · 0 评论 -
天梯赛模拟题_(N个分数的求和)
这题在赛场时,考虑到了得先整体再局部。是要将所有的分数的分母进行通同分。求出它们的最小公倍数。然后每个分数化为以最小公倍数为分母的分数 。分子部分累加起来。例如:1/3+1/2 = 5/6;(分子部分累加为5); (注意:所有分子和分母都在长整型范围内)。但还是没AC出来。现在把它解决后完整的贴出来。欸,真的是一道水题,分值还有15'。因为题目要求是要将最终结果化为 整形: 最简分数型。最大公约数...原创 2018-03-17 11:46:40 · 912 阅读 · 0 评论 -
PAT_电话聊天狂人题
这题如果采取普通做法,完全行不通。原因是测试的数据组大,且数据组所含有的数据元素大。这里直接借鉴网上的代码 :暴力解法:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;struct Node{ long...原创 2018-03-03 00:13:37 · 846 阅读 · 0 评论 -
堆栈模拟队列
点击打开链接#include #include #include #includeusing namespace std; //typedef struct SNode{ // int num; // struct SNode * next; //}*STACK; //STACK create() //{ // STACK原创 2017-10-23 20:34:49 · 959 阅读 · 0 评论 -
PAT(笛卡尔树)
#include <iostream>#include <cstdio>#include <cstring>using namespace std;struct BST{ int key; //笛卡尔树满足二叉搜索树性质 int value; //笛卡尔树满足堆性质[根总大于(大堆),或小于(小堆)子树节点) ] in...原创 2017-09-28 21:31:08 · 1451 阅读 · 0 评论 -
根据前中序,还原树
题意:给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。思路:对于给定的前序和中序数组。首先根据前序特性("根左右"),第一个即为树的根节点。然后根据中序的特性("左根右”),去中序数组中...原创 2017-09-12 15:48:15 · 291 阅读 · 0 评论 -
单链表删除头结点时出错解决方法
老规矩,直接贴码。#include#include typedef struct node{struct node *next;int age; }Node;Node *CreatList(){Node *head = NULL; Node *p,*t; int a ; printf("请输入数据(输入0原创 2017-09-11 20:13:58 · 1725 阅读 · 0 评论 -
PTA- 搜索树判断
题目:对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值。如果我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树。现在我们给出一个整数键值序列,请编写程序判断该序列是否为某棵二叉搜索树或某镜像二叉搜索树的前序遍历序列,如果是,则输出对应二叉树的后序遍历序列。判断搜索二叉树:先判断给出的数组是不是前序(由建立的后序判断):需要注意的是;...原创 2017-09-01 15:18:05 · 1161 阅读 · 0 评论 -
不定长数组vector,STL的使用
把这道题贴出来跟大家一起分享下;这题用vector不定数组有“神笔“之效,看到这题的第一思路是构建结构,然后对应每门课程以及学生的选择情况用简单数组来记录选择的课程 编号,以及用另一变量来记录这学生的选择课程总数。每门学生类推;不用说这样明显效率低,而且难得去写,最终题目也没ac出来题目:题意:有N个学生,K门课,给出选择每门课的学生姓名,最后对于给出的N个学生的姓名的选课情况进行询问,要原创 2017-08-29 11:10:16 · 402 阅读 · 0 评论 -
两个有序链表序列的合并
PTA:数据结构与算法集输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。输入样例:1 3 5 -12 4 6 8 10 -1输出样例:1原创 2017-08-27 13:06:52 · 597 阅读 · 0 评论