![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
模拟
文章平均质量分 58
lao_kai_ybqy
这个作者很懒,什么都没留下…
展开
-
十面埋伏(DFS,标记)
十面埋伏题目链接经过多年的征战,牛牛在与牛可乐的对决渐渐处于下风,于是牛牛决定对牛可乐来一次大围剿。战场可以看作一张 n∗m 的地图,牛可乐的士兵只能上下左右移动,不能斜着移动,牛牛决定挖一圈陷阱包围牛可乐的士兵。牛牛想知道包围牛可乐的士兵所需要的最少的陷阱数量是多少(划掉,具体请看update),但是牛牛并不会排兵布阵,于是只能求助于你了。保证地图的边界处不会有士兵.保证牛可乐的士兵是连通的要求牛可乐使用的陷阱构成的包围圈与牛可乐的士兵之间要求是紧密接触的输入描述:第一行输入两个整数 n原创 2021-03-19 17:54:59 · 129 阅读 · 0 评论 -
计算A+B(高精度加法)
计算A+B题目链接在一行中给出一个字符串,请判断是否满足A + B格式,如果满足,输出计算结果,否则输出"skipped"。此处A,B均为大于等于0的整数,不保证数据没有前导零。输入描述:第一行输入一个n, 1 \le n \le 1000n,1≤n≤1000,代表测试数据的组数。接下来n行,每行输入一个长度不超过10000的字符串。输出描述:对于每组输入,输出结果输入42+21+2+120+0输出43skipped0算法分析高精度加法模拟,处理前导零代码实现#原创 2021-03-15 17:04:07 · 245 阅读 · 0 评论 -
正则问题(递归搜索)
正则问题题目链接考虑一种简单的正则表达式:只由 x ( ) | 组成的正则表达式。小明想求出这个正则表达式能接受的最长字符串的长度。例如 ((xx|xxx)x|(x|xx))xx 能接受的最长字符串是: xxxxxx,长度是6。输入格式一个由x()|组成的正则表达式。输出格式输出所给正则表达式能接受的最长字符串的长度。数据范围输入长度不超过100,保证合法。输入样例:((xx|xxx)x|(x|xx))xx输出样例:6算法分析我们采取递归搜索的方法,详情见代码这里解释一下原创 2021-03-03 18:25:32 · 539 阅读 · 1 评论 -
交换瓶子(图论环,暴力)
交换瓶子题目链接有 N 个瓶子,编号 1∼N,放在架子上。比如有 5 个瓶子:2 1 3 5 4要求每次拿起 2 个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:1 2 3 4 5对于这么简单的情况,显然,至少需要交换 2 次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入格式第一行包含一个整数 N,表示瓶子数量。第二行包含 N 个整数,表示瓶子目前的排列状况。输出格式输出一个正整数,表示至少交换多少次,才能完成排序。数据范围1≤N≤10000,输入样例1:原创 2021-03-01 21:14:32 · 158 阅读 · 0 评论 -
日志统计(模拟)
日志统计题目链接小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N 行。其中每一行的格式是:ts id表示在 ts 时刻编号 id 的帖子收到一个”赞”。现在小明想统计有哪些帖子曾经是”热帖”。如果一个帖子曾在任意一个长度为 D 的时间段内收到不少于 K 个赞,小明就认为这个帖子曾是”热帖”。具体来说,如果存在某个时刻 T 满足该帖在 [T,T+D) 这段时间内(注意是左闭右开区间)收到不少于 K 个赞,该帖就曾是”热帖”。给定日志,请你帮助小明统计出所有曾是”热帖”的帖原创 2021-02-26 23:23:34 · 114 阅读 · 0 评论 -
逆序对的数量(归并排序模拟)
逆序对的数量题目链接给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i < j 且 a[i] > a[j],则其为一个逆序对;否则不是。输入格式第一行包含整数n,表示数列的长度。第二行包含 n 个整数,表示整个数列。输出格式输出一个整数,表示逆序对的个数。数据范围1≤n≤100000输入样例:62 3 4 5 6 1输出样例:5算法分析我们可以用归并排序来进行操作.在归并的同时,我们发现原创 2021-02-24 23:32:28 · 134 阅读 · 0 评论 -
航班时间(读入处理)
航班时间题目链接小 h 前往美国参加了蓝桥杯国际赛。小 h 的女朋友发现小 h 上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”。小 h 对超音速飞行感到十分恐惧。仔细观察后发现飞机的起降时间都是当地时间。由于北京和美国东部有 12 小时时差,故飞机总共需要 14 小时的飞行时间。不久后小 h 的女朋友去中东交换。小 h 并不知道中东与北京的时差。但是小 h 得到了女朋友来回航班的起降时间。小 h 想知道女朋友的航班飞行时间是多少。对于一个可能跨时区转载 2021-02-24 22:59:04 · 113 阅读 · 0 评论 -
日期问题(日期处理)
日期问题题目链接小明正在整理一批历史文献。这些历史文献中出现了很多日期。小明知道这些日期都在1960年1月1日至2059年12月31日。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。比如02/03/04,可能是2002年03月04日、2004年02月03日或2004年03月02日。给出一个文献上的日期,你能帮助小明判断有哪些可能的日期对其对应吗?原创 2021-02-24 21:23:33 · 442 阅读 · 1 评论 -
外卖店优先级(模拟)
外卖店优先级题目链接“饱了么”外卖系统中维护着 N 家外卖店,编号 1∼N。每家外卖店都有一个优先级,初始时 (0 时刻) 优先级都为 0。每经过 1 个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果优先级小于等于 3,则会被清除出优先缓存。给定 T 时刻以内的 M 条订单信息,请你计算 T 时刻时有多少外卖店在优先缓存中。输入格式第一行包含 3 个原创 2021-02-24 18:18:56 · 259 阅读 · 0 评论 -
回文日期(日期模拟)
回文日期题目链接在日常生活中,通过年、月、日这三个要素可以表示出一个唯一确定的日期。牛牛习惯用 8 位数字表示一个日期,其中,前 4 位代表年份,接下来 2 位代表月份,最后 2 位代表日期。显然:一个日期只有一种表示方法,而两个不同的日期的表示方法不会相同。牛牛认为,一个日期是回文的,当且仅当表示这个日期的8位数字是回文的。现在,牛牛想知道:在他指定的两个日期之间(包含这两个日期本身),有多少个真实存在的日期是回文的。一个 8 位数字是回文的,当且仅当对于所有的 i(1≤i≤8) 从左向右数原创 2021-02-24 16:07:28 · 228 阅读 · 0 评论 -
连号区间数(模拟枚举)
连号区间数题目链接小明这些天一直在思考这样一个奇怪而有趣的问题:在 1∼N 的某个排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间 [L,R] 里的所有元素(即此排列的第 L 个到第 R 个元素)递增排序后能得到一个长度为 R−L+1 的“连续”数列,则称这个区间连号区间。当 N 很小的时候,小明可以很快地算出答案,但是当 N 变大的时候,问题就不是那么简单了,现在小明需要你的帮助。输入格式第一行是一个正整数 N,表示排列的规模。第二行是 N 个不同的数字 Pi,表示这 N原创 2021-02-24 13:47:34 · 127 阅读 · 0 评论 -
四平方和(二分,模拟)
四平方和题目链接四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多 4 个正整数的平方和。如果把 0 包括进去,就正好可以表示为 4 个数的平方和。比如:5=02+02+12+227=12+12+12+22对于一个给定的正整数,可能存在多种平方和的表示法。要求你对 4 个数排序:0≤a≤b≤c≤d并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法。输入格式输入一个正整数 N。输出格式输出4个非负整数,按从小到大排序,中间用空格分开。数据原创 2021-02-23 16:53:00 · 92 阅读 · 0 评论 -
飞行员兄弟(暴力枚举)
飞行员兄弟题目链接“飞行员兄弟”这个游戏,需要玩家顺利的打开一个拥有16个把手的冰箱。已知每个把手可以处于以下两种状态之一:打开或关闭。只有当所有把手都打开时,冰箱才会打开。把手可以表示为一个4х4的矩阵,您可以改变任何一个位置[i,j]上把手的状态。但是,这也会使得第i行和第j列上的所有把手的状态也随着改变。请你求出打开冰箱所需的切换把手的次数最小值是多少。输入格式输入一共包含四行,每行包含四个把手的初始状态。符号“+”表示把手处于闭合状态,而符号“-”表示把手处于打开状态。至少一个原创 2021-02-22 23:40:57 · 144 阅读 · 0 评论 -
带分数(爆搜)
带分数题目链接100 可以表示为带分数的形式:100=3+69258 / 714还可以表示为:100=82+3546 / 197注意特征:带分数中,数字 1∼9 分别出现且只出现一次(不包含 0)。类似这样的带分数,100 有 11 种表示法。输入格式一个正整数。输出格式输出输入数字用数码 1∼9 不重复不遗漏地组成带分数表示的全部种数。数据范围1≤N<106输入样例1:100输出样例1:11输入样例2:105输出样例2:6算法分析暴力枚举每一种情况,我们找原创 2021-02-22 22:03:31 · 748 阅读 · 0 评论 -
费解的开关(递推,模拟)
费解的开关题目链接你玩过“拉灯”游戏吗?25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字“1”表示一盏开着的灯,用数字“0”表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将变成:0111111101101111000011011再改变它正中间的灯后状态将变成:0原创 2021-02-22 12:58:34 · 790 阅读 · 0 评论 -
递归实现指数型枚举
递归实现指数型枚举题目链接从 1~n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好1个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3算法分析我们按位枚举,每一位选或者不选2种所以最多215.然后我们递归每一种状态是15*21原创 2021-02-21 23:01:10 · 98 阅读 · 0 评论 -
星空之夜(哈希+DFS)
星空之夜题目链接夜空深处,闪亮的星星以星群的形式出现在人们眼中,形态万千。一个星群是指一组非空的在水平,垂直或对角线方向相邻的星星的集合。一个星群不能是一个更大星群的一部分。星群可能是相似的。如果两个星群的形状、包含星星的数目相同,那么无论它们的朝向如何,都认为它们是相似的。通常星群可能有 8 种朝向,如下图所示:现在,我们用一个二维 01 矩阵来表示夜空,如果一个位置上的数字是 1,那么说明这个位置上有一个星星,否则这个位置上的数字应该是 0。给定一个夜空二维矩阵,请你将其中的所有星群原创 2021-02-18 17:48:39 · 139 阅读 · 0 评论 -
Z字形扫描(数组坐标模拟)
Z字形扫描题目链接在图像编码的算法中,需要将一个给定的方形矩阵进行 Z 字形扫描(Zigzag Scan)。给定一个 n×n 的矩阵,Z 字形扫描的过程如下图所示:对于下面的 4×4 的矩阵,1 5 3 93 7 5 69 4 6 47 3 1 3对其进行 Z 字形扫描后得到长度为 16 的序列:1 5 3 9 7 3 9 5 4 7 3 6 6 4 1 3。请实现一个 Z 字形扫描的程序,给定一个 n×n 的矩阵,输出对这个矩阵进行 Z 字形扫描的结果。输入格式输入的第一行包含一原创 2021-02-18 17:14:56 · 522 阅读 · 0 评论 -
数独检查
数独检查题目链接数独是一种流行的单人游戏。目标是用数字填充9x9矩阵,使每列,每行和所有9个非重叠的3x3子矩阵包含从1到9的所有数字。每个9x9矩阵在游戏开始时都会有部分数字已经给出,通常有一个独特的解决方案。给定完成的N2∗N2数独矩阵,你的任务是确定它是否是有效的解决方案。有效的解决方案必须满足以下条件:每行包含从1到N2的每个数字,每个数字一次。每列包含从1到N2的每个数字,每个数字一次。将N2∗N2矩阵划分为N2个非重叠N∗N子矩阵。 每个子矩阵包含从1到N2的每个数字,每个原创 2021-02-17 23:47:49 · 353 阅读 · 0 评论 -
滑雪场设计(贪心,区间枚举)
滑雪场设计题目链接农夫约翰的农场上有 N 个山峰,每座山的高度都是整数。在冬天,约翰经常在这些山上举办滑雪训练营。不幸的是,从明年开始,国家将实行一个关于滑雪场的新税法。如果滑雪场的最高峰与最低峰的高度差大于17,国家就要收税。为了避免纳税,约翰决定对这些山峰的高度进行修整。已知,增加或减少一座山峰 x 单位的高度,需要花费 x2 的金钱。约翰只愿意改变整数单位的高度,且每座山峰只能修改一次。请问,约翰最少需要花费多少钱,才能够使得最高峰与最低峰的高度差不大于17。输入格式第一行包含整原创 2021-02-17 23:40:53 · 80 阅读 · 0 评论 -
翻硬币(字符串模拟)
翻硬币小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:oo*oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作。输入格式两行等长的字符串,分别表示初始状态和要达到的目标状态。输出格式一个整数,表示最小操作步数数据范原创 2021-02-17 23:09:12 · 116 阅读 · 0 评论 -
十三号星期五(日期模拟)
十三号星期五十三号星期五真的很不常见吗?每个月的十三号是星期五的频率是否比一周中的其他几天低?请编写一个程序,计算 N 年内每个月的 13 号是星期日,星期一,星期二,星期三,星期四,星期五和星期六的频率。测试的时间段将会开始于 1900 年 1 月 1 日,结束于 1900+N−1 年 12 月 31日。一些有助于你解题的额外信息:1900 年 1 月 1 日是星期一。在一年中,4 月、6 月、9 月、11 月每个月 30 天,2 月平年 28 天,闰年 29 天,其他月份每个月31天。公原创 2021-02-17 22:52:04 · 342 阅读 · 0 评论 -
棋盘挑战(dfs爆搜,剪枝)
棋盘挑战题目链接给定一个 N×N 的棋盘,请你在上面放置 N 个棋子,要求满足:每行每列都恰好有一个棋子每条对角线上都最多只能有一个棋子1 2 3 4 5 61 | | O | | | | |2 | | | | O | | |3 | | | | | | O |4 | O | | | | | |5 | | | O | | | |6 | | | | | O原创 2021-02-17 22:36:33 · 149 阅读 · 0 评论 -
蛇形矩阵(模拟遍历)
蛇形矩阵输入两个整数n和m,输出一个n行m列的矩阵,将数字 1 到 n*m 按照回字蛇形填充至矩阵中。具体矩阵形式可参考样例。输入格式输入共一行,包含两个整数n和m。输出格式输出满足要求的矩阵。矩阵占n行,每行包含m个空格隔开的整数。数据范围1≤n,m≤100输入样例:3 3输出样例:1 2 38 9 47 6 5算法分析这题就是个模拟题,我们遍历四个方向,这个递增顺序是右下左上的顺序,我们用一个方向变量来记录一下就可以了,记录的方式就是用当前方向+1然后%4表示方向的改变原创 2021-02-17 22:10:13 · 270 阅读 · 0 评论 -
回文平方(进制转换,回文判断)
回文平方题目链接回文数是指数字从前往后读和从后往前读都相同的数字。例如数字 12321 就是典型的回文数字。现在给定你一个整数 B,请你判断 1∼300 之间的所有整数中,有哪些整数的平方转化为 B 进制后,其 B 进制表示是回文数字。输入格式一个整数 B。输出格式每行包含两个在 B 进制下表示的数字。第一个表示满足平方值转化为 B 进制后是回文数字那个数,第二个数表示第一个数的平方。所有满足条件的数字按从小到大顺序依次输出。数据范围2≤B≤20,对于大于 9 的数字,用 A 表示原创 2021-02-02 12:02:50 · 227 阅读 · 0 评论 -
数独简单版
数独简单版题目链接数独是一种传统益智游戏,你需要把一个 9×9 的数独补充完整,使得图中每行、每列、每个 3×3 的九宫格内数字 1∼9 均恰好出现一次。请编写一个程序填写数独。输入格式输入共 9 行,每行包含一个长度为 9 的字符串,用来表示数独矩阵其中的每个字符都是 1∼9 或 .(表示尚未填充)。输出格式输出补全后的数独矩阵。数据保证有唯一解。输入样例:.2738. .1..1. . .6735. . . . . . .293.5692.8.. . . . . . .原创 2021-02-05 16:12:03 · 644 阅读 · 2 评论 -
I love you(字符串dp问题)
牛客小白月赛21 I题目链接算法分析子序列是可以穿插着选字符组成这题是字符串模拟,也是dp的思想,能否组成就看前面已经有的字符个数算法实现#include<iostream>#include<cstdio>#include<math.h>#include<cstring>using namespace std;const int mod=20010905;int main(){ int a,b,c,d,e,f,g,h;原创 2021-01-18 22:51:46 · 326 阅读 · 0 评论 -
进制转换(任意进制转换)
牛客小白月赛20 F进制转换算法分析详细分析进制转换代码实现#include<iostream>#include<cstring>#include<math.h>#include<vector>#include<string>using namespace std;string n;int s,k;vector<int > a,res;int main(){ cin>>n; ci原创 2021-01-16 19:37:49 · 129 阅读 · 0 评论