
算法课习题
简单的完美主义者
学算法,当码农
展开
-
美食一条街
今天XXX来到HUTC的美食一条街,准备大吃一顿.美食一条街为一维坐标,上面共有n个餐馆,第i个餐馆的坐标为x_i(同一地点可能有多个餐馆). XXX单位时间移动速度为1,即从坐标x到坐标y所花费时间为|x-y|.当然由于餐馆的食物质量以及上菜速度不同,在XXX经过i号餐馆后,他可以花t_i的时间吃完第i号餐馆的美食,当然他也可以仅仅从第i号餐馆门前经过。XXX共有m个单位时间,并且他起始位置为0,可以假设他胃无限大,问他最多能在多少餐馆吃美食。输入格式:第一行包含两个整数 n,m。接下来 n行原创 2021-05-12 16:49:30 · 235 阅读 · 0 评论 -
二叉树遍历
二叉树的每个结点用一个大写字母表示,现在已知其中序和按层遍历的字符串,求该树的先序遍历字符串。输入格式:输入两行,分别表示二叉树的中序遍历和按层遍历的序列(一行中的每个字母都不相同)。输出格式:一行,表示二叉树的先序序列。输入样例:DBEACABCDE输出样例:ABDEC代码#include<iostream>#include<cstring>#include<string>using namespace std;//因为层序是先输出根节原创 2021-05-12 16:07:50 · 400 阅读 · 0 评论 -
逆序数问题
设x1,x2,x3…,xn是集合{1,2,3,…,n}的一个排列,排列中逆序对的对数称为逆序数,(如1432的逆序数为3,即有3对逆序对,分别为:43,42,32)。则当x3=4时(即第3个数为4),所有排列的逆序数的和为多少?(n=6时,为2020年全国高中数学联赛浙江赛区初赛试题填空第10题)输入格式:输入一个n(n<10)。输出格式:输出逆序数的和。输入样例:6输出样例:912代码#include<iostream>using namespace std;原创 2021-05-12 16:05:53 · 816 阅读 · 0 评论 -
p/n棋盘问题
输出字符’p’和’n’的棋盘。输入格式:一个数n(表示棋盘大小,即为2n ∗2n(次方) 的字符棋盘,其中n<10)。输出格式:输出一个2n ∗2n (次方)的字符棋盘(‘字符由‘p’和‘n’组成,‘p’:为正,‘n’为负的意思),其规则为:规模为n的棋盘的左上角,右上角和右下角为规模为n-1的棋盘,其左下角为左上角的取反(即对应字母为‘p’则变为’n’;字母为‘n’则变为’p’)。输入样例:12输出样例:ppnpppppnpnpnnpppnnp原创 2021-05-12 15:47:20 · 258 阅读 · 0 评论 -
排队问题C++
排队有n个数(1-n), 初始时按1~n的顺序从前到后的排列。然后有m个操作,每次输入一个数x,表示要将x提到最前面去。输入格式:第一行两个数n和m(n<106 ,m<105,10的六次方,10的五次方 )。接下来有m个数,表示m次操作。输出格式:m次操作后,从前往后的输出这n个数,数间用一个空格隔开,注意:最后一个数后也有一个空格。输入样例:5 33 1 2输出样例:2 1 3 4 5 说明:开始从前往后分别是1 2 3 4 5,当3提到最前面后变成:3 1原创 2021-05-12 15:43:19 · 2274 阅读 · 0 评论 -
移动次数最少(2007慈溪)C++代码
移动次数最少(2007慈溪)有n堆糖果(2≤n≤200),排成一行,编号分别为1,2,…n。 已知每堆糖果有一定的颗数,且颗数之和均为n的倍数。移动各堆中的任意颗糖果,使每堆的数量达到相同,且移动次数最少。 移动规则: 每次可以移动任意的糖果颗数,第1堆可以移向第2堆,第2堆可以移向第1堆或第3堆,。。。。。。 第n 堆只可以移向第n -1堆。 例如,当n=4时: 堆号 1 2 3 4 颗数 9 8 17 6 移动的方法有许多种, 其中的一种方案: ① 第3堆向第4堆移动4颗,成为:9 8 13 10 ②原创 2021-05-12 15:35:51 · 678 阅读 · 0 评论 -
数方格C++代码
数方格(余姚2013小学)余姚市要新建一个广场,为了美观,要求完全是正方形。目前正在规划当中,正方形的大小和位置都在热烈的讨论之中。假设将可用于造广场的区域看成一个矩形,由11的单位正方形构成。如下图:这是一个46的矩形区域广场要求必须在这个矩形范围内,广场边线不能跨过任意一个单位正方形内部,只能与正方形边线重合,且广场必须为正方形。那么上图中,以下4种正方形均为可行方案:市民们提出了很多建造广场的方案。现在领导想要知道,到底有多少种不同的方案可以选择?请你设计一个程序,来计算以下建造广场的最多可原创 2021-05-12 15:24:51 · 439 阅读 · 0 评论