一些c++的题目
Jerryqs3
这个作者很懒,什么都没留下…
展开
-
2021 4.17复习第二天献给阿尔卡侬的花束
阿尔吉侬是一只聪明又慵懒的小白鼠,它最擅长的就是走各种各样的迷宫。今天它要挑战一个非常大的迷宫,研究员们为了鼓励阿尔吉侬尽快到达终点,就在终点放了一块阿尔吉侬最喜欢的奶酪。现在研究员们想知道,如果阿尔吉侬足够聪明,它最少需要多少时间就能吃到奶酪。迷宫用一个 R×C 的字符矩阵来表示。字符 S 表示阿尔吉侬所在的位置,字符 E 表示奶酪所在的位置,字符 # 表示墙壁,字符 . 表示可以通行。阿尔吉侬在 1 个单位时间内可以从当前的位置走到它上下左右四个方向上的任意一个位置,但不能走出地图边界。输入原创 2021-04-17 07:26:13 · 149 阅读 · 0 评论 -
2021 复习第一天 前缀和
输入一个长度为 n 的整数序列。接下来再输入 m 个询问,每个询问输入一对 l,r。对于每个询问,输出原序列中从第 l 个数到第 r 个数的和。输入格式第一行包含两个整数 n 和 m。第二行包含 n 个整数,表示整数数列。接下来 m 行,每行包含两个整数 l 和 r,表示一个询问的区间范围。输出格式共 m 行,每行输出一个询问的结果。数据范围1≤l≤r≤n,1≤n,m≤100000,−1000≤数列中元素的值≤1000输入样例:5 32 1 3 6 41 21 32 4原创 2021-04-16 18:18:37 · 84 阅读 · 0 评论 -
2021 4.16 复习第一天 数的范围
给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。如果数组中不存在该元素,则返回 -1 -1。输入格式第一行包含整数 n 和 q,表示数组长度和询问个数。第二行包含 n 个整数(均在 1∼10000 范围内),表示完整数组。接下来 q 行,每行包含一个整数 k,表示一个询问元素。输出格式共 q 行,每行包含两个整数,表示所求元素的起始位置和终止位置。如果数组中不存在该元素,则返回 -1 -1。数据原创 2021-04-16 17:43:00 · 100 阅读 · 0 评论 -
2021 4.16 复习第一天 飞行员兄弟
飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有 16 个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个 4×4 的矩阵,您可以改变任何一个位置 [i,j] 上把手的状态。但是,这也会使得第 i 行和第 j 列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。输入格式输入一共包含四行,每行包含四个把手的初始状态。符号 + 表示把手处于闭合状态,而符号 - 表示把手处于打开状态。至少一个手柄原创 2021-04-16 15:21:00 · 79 阅读 · 0 评论 -
2021 4.16 复习第一天 带分数
100 可以表示为带分数的形式:100=3+69258714还可以表示为:100=82+3546197注意特征:带分数中,数字 1∼9 分别出现且只出现一次(不包含 0)。类似这样的带分数,100 有 11 种表示法。输入格式一个正整数。输出格式输出输入数字用数码 1∼9 不重复不遗漏地组成带分数表示的全部种数。数据范围1≤N<106输入样例1:100输出样例1:11输入样例2:105输出样例2:61、数据范围:10^6 这是虚假的数据,因为要计算的应该是1-9原创 2021-04-16 14:22:05 · 123 阅读 · 0 评论 -
2021 4.16 复习第一天递归实现组合型枚举
从 1∼n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。输入格式两个整数 n,m ,在同一行用空格隔开。输出格式按照从小到大的顺序输出所有方案,每行 1 个。首先,同一行内的数升序排列,相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面(例如 1 3 5 7 排在 1 3 6 8 前面)。数据范围n>0 ,0≤m≤n ,n+(n−m)≤25输入样例:5 3输出样例:1 2 31 2 41 2 51 3 41 3原创 2021-04-16 10:00:58 · 74 阅读 · 0 评论 -
2021 4.16 复习第一天 费解的开关
你玩过“拉灯”游戏吗?25 盏灯排成一个 5×5 的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字 1 表示一盏开着的灯,用数字 0 表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将变成:0111111101101111000011011再改变它正中间的灯后状态将变成:0111原创 2021-04-16 09:50:02 · 83 阅读 · 0 评论 -
2021 4.16 复习第一天 简单斐波拉契数列
以下数列 0 1 1 2 3 5 8 13 21 … 被称为斐波纳契数列。这个数列从第 3 项开始,每一项都等于前两项之和。输入一个整数 N,请你输出这个序列的前 N 项。输入格式一个整数 N。输出格式在一行中输出斐波那契数列的前 N 项,数字之间用空格隔开。数据范围0<N<46输入样例:5输出样例:0 1 1 2 31.数据范围 n < 46 对于斐波那契来说,这个数很小啊,直接写出a[50]数列完事啊;#include <iostream>#原创 2021-04-16 08:53:45 · 137 阅读 · 0 评论 -
2021 4.16 复习第一天 递归实现排列型枚举
把 1∼n 这 n 个整数排成一行后随机打乱顺序,输出所有可能的次序。输入格式一个整数 n。输出格式按照从小到大的顺序输出所有方案,每行 1 个。首先,同一行相邻两个数用一个空格隔开。其次,对于两个不同的行,对应下标的数一一比较,字典序较小的排在前面。数据范围1≤n≤9输入样例:3输出样例:1 2 31 3 22 1 32 3 13 1 23 2 1思路:1.观察数据范围 n < 9 果断 指数dfs2.显然和第一题有所区别,这一题的所有的数最终都会被选到原创 2021-04-16 08:40:18 · 56 阅读 · 0 评论 -
2021.4.16 复习第一天 递归实现指数型排序
从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数 n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3思路:1.看数据范围 n < 15 显然指数dfs2.遍历每一个数该数可选可不选3.细节点:每次方案选原创 2021-04-16 08:27:02 · 65 阅读 · 0 评论 -
C++高精度求阶乘的和
C++高精度求阶乘的和题目描述用高精度计算出 sS=1!+2!+3!+⋯+n!。其中“!”表示阶乘,例如:5! = 1! + 2! + 3! + 4!+ 5!.其中 5!=5×4×3×2×1。输入格式一个正整数 n。输出格式一个正整数 S,表示计算结果。输入输出样例输入3输出9说明/提示【数据范围】对于 100 % 的数据,(1 ≤ n ≤50)。思路:输入n 输出1! + 2! + … + n!那不就是用一个循环for ( 1 到 n){ a = a *原创 2021-04-11 21:00:37 · 3576 阅读 · 0 评论