刷题
从各个网站刷的题目...
你的代码没bug
No Bug
展开
-
csp 201512-3画图(含解析)
思路其实这道题相对来说比较简单!我们要处理两种操作:1.勾勒出边框2.在边框内进行填充操作一我们用一个足够大的二维数组存放字符。’-’ 碰到 ‘+’ 或者 ‘|’ ,那么对应位置应该为 ‘+’ ,否则填充 ‘-’。同理,’|’ 碰到 ‘+’ 或者 ‘-’ ,那么对应位置应该为 ‘+’ ,否则填充 ‘|’。操作二操作而有点像图的广度优先遍历!用简单的递归就可以实现该操作。 C++代码#include <bits/stdc++.h>using namespace原创 2020-10-14 16:51:57 · 124 阅读 · 0 评论 -
csp 模板生成系统(含解析)
思路这道题,提交了四次,四次运行超时,不知道怎么回事,看了别人的题解才知道自己想多了…评测用例规模及约定输入保证模板中所有以 {{ 开始的子串都是合法的标记,开始是两个左大括号和一个空格,然后是变量名,结尾是一个空格和两个右大括号。1.变量不用你判断是否合法!2.以 {{ 开始,结尾是一个空格和两个右大括号,所以不用担心左右括号谁前谁后,也不用担心连续多个左/右括号!然而…我觉得我应该回去重修语文…思路把模板一行一行存入vector把要替换的变量名和值存入map,值要去除双引号然后一原创 2020-10-13 21:09:27 · 501 阅读 · 0 评论 -
csp 节日(含解析)
思路已知1850年1月1日是星期二,那么我们就可以算出1850年第一个星期一、三、五,六,日是几月几号!比如题目要求a月的第b个星期五,那么c=5,1850年的第一个星期五就是(1+c-2)=4号。然后根据4号不断往后加7:11号为星期五,18号为星期五…如果超过本月天数,就用累加的减去本月天数,即为下一个月第一个星期五的日期。 C++代码#include <bits/stdc++.h>using namespace std;int main(int argc, c原创 2020-10-11 20:55:31 · 337 阅读 · 0 评论 -
csp 字符串匹配(解析)
思路题目分为大小写敏感(标志为1),和大小写不敏感(标志为0),那么分情况处理即可。大小写敏感:在字符串匹配时,用到的就是暴力匹配,只不过用substr()函数稍微进行了优化。大小写不敏感:先将给定的字符串全部转为小写,然后每一行转换为小写进行匹配即可。用到的核心知识点:string中的substr,vector以及transform函数。 C++代码#include <bits/stdc++.h>using namespace std;int main(int原创 2020-10-11 09:53:22 · 571 阅读 · 0 评论 -
csp 最大的矩形(含解析)
思路首先找到数组中的最大值和最小值,从最小值到最大值循环。如果数组中的值大于当前值,那么就把标志数组对应位置置为1,最后计算标志数组中连续的1的对应面积。如下图,如果当前值为2,然后数组中第0位大于当前值,flag[0]置1;同理flag的2、3、4、5位都为1,计算出面积选出最大值。当前值为3的情况: C++代码实现#include <bits/stdc++.h>using namespace std;int main(int argc, char**原创 2020-10-09 11:37:40 · 382 阅读 · 0 评论 -
csp 稀疏向量(含解析)
思路我的思路有点像数据结构中的多项式相加。多项式相加:如果指数相同,那么进行运算,否则指数小的后移。对于多项式相加,没有对应项,直接写下来即可。但是对于本题,没有对应项就是0,也就不用管了。 C++代码暴力就完了…但是要考虑数据,我全使用了long long型#include <bits/stdc++.h>using namespace std;int main(int argc, char** argv) { long long n; long long原创 2020-10-08 20:55:28 · 588 阅读 · 0 评论 -
csp 小明放学解析
题解相信大家已经看过题了,直接上思路!!信号灯的顺序是绿->黄->红,和输入的顺序是相反的。就按照题目给的例子来说,输入为3 10时,之前用时为41s,那么41-10=31,也就是该绿灯走完后,还有31s。那么这31s内,该绿灯变成了什么颜色?31-3=28,走完黄灯。28-30= -2,可见没有走完红灯,那么此时就要等待2s。对于其余样例,大家可以试试,说白了也就是一个简单的模拟! 注意点1.根据该题的 评测用例规模与约定 ,数据应该为long long型原创 2020-10-07 16:32:24 · 292 阅读 · 0 评论 -
CSP 买菜(含解析)
C++实现思路:将各个时间段用数组存起来,包含头但是不包含尾。比如[1,3],在数组中,我们只把下标为1和2的数组元素设置为1,而不设置下标为3的元素。当输入第一个人的时候,修改数组元素。输入第二个人的时候,判断对应下标元素是否为1,便可知道二人时间是否重叠,也就是可以聊天的时间。 代码#include <iostream>using namespace std;int main(int argc, char** argv) { int n; scanf(原创 2020-10-06 21:09:08 · 415 阅读 · 2 评论 -
csp 详解碰撞的小球(C++实现)
题目什么的就不写了,觉得大家都看过,直接上思路!解题思路碰撞的小球一题和下面链接里的题目类似:POJ的题目Ants可惜还是有点区别,如果使用和上题一样的思路,会带来不必要的麻烦!(我使用上题的思路没有做出来,大家可以试试)POJ的题目Ants这道题的解题思路还是挺新颖的,建议大家看看! 在我抛弃上述思路的做法后,很快就写出了答案:一、首先定义了一个结构体:typedef struct Ball ball;struct Ball{ int position;//表示小球位置原创 2020-09-29 19:49:29 · 1417 阅读 · 0 评论 -
csp公共钥匙盒
参考的博客siriyang的个人博客 题目描述有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家。每次老师上课前,都从公共钥匙盒里找到自己上课的教室的钥匙去开门,上完课后,再将钥匙放回到钥匙盒中。 钥匙盒一共有N个挂钩,从左到右排成一排,用来挂N个教室的钥匙。一串钥匙没有固定的悬挂位置,但钥匙上有标识,所以老师们不会弄混钥匙。 每次取钥匙的时候,老师们都会找到自己所需要的钥匙将其取走,而不会移动其他钥匙。每次还钥匙的时候,还钥匙的老师会找原创 2020-09-26 21:22:24 · 124 阅读 · 0 评论 -
csp火车购票(C++含解析)
问题描述请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。 购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最小的几个空座位中(不考虑是否相邻)。 假设初始时车票全部未被购买,现在给了一些购票指令,请你处理这些指令。原创 2020-09-23 21:28:39 · 1352 阅读 · 1 评论 -
csp 201409-2 画图(含解析思路)
题目描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。 下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到(4, 4),用绿色和紫色表示。第二个矩形是(2, 3)到(6, 5),用蓝色和紫色表示。图中,一共有15个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一次。在实际的涂色过程中,原创 2020-09-14 16:57:38 · 420 阅读 · 0 评论 -
Line 1060: Char 9: runtime error: addition of unsigned offset to 0x7fffda1e0e20 overflowed to 0x7fff
问题描述LeetCode碰到的错误:第1060行:Char 9:运行时错误:将无符号偏移量添加到0x7fffda1e0e20溢出到0x7fffda1e0e1f(basic_string.h)(来自百度翻译)说白了就是越界了,比如数组、字符串。对操作边界的代码检查一下! 比如字符串s的操作:while(s[m]==' ')m++;当m为 s.length()-1 时,再加1就会越界,此时再到while中判断就会报该错误。 ...原创 2020-07-20 11:34:30 · 10783 阅读 · 2 评论 -
递归解决汉诺塔问题---C++实现
问题描述在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘子可以滑入任意一根柱子。一开始,所有盘子自上而下按升序依次套在第一根柱子上(即每一个盘子只能放在更大的盘子上面)。移动圆盘时受到以下限制:(1) 每次只能移动一个盘子;(2) 盘子只能从柱子顶端滑出移到下一根柱子;(3) 盘子只能叠在比它大的盘子上。为了搞清楚汉诺塔问题,特意去玩了玩该类型的游戏。说真的,我自己玩的不咋滴,不过算法还是搞清楚了。 解题思路这里假设 n 是盘子的个数。有三个柱子:from,原创 2020-07-03 23:10:20 · 626 阅读 · 0 评论 -
蓝桥杯之明码(含解析)
题目描述汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节,一共16行,布局是:第1字节,第2字节第3字节,第4字节…第31字节, 第32字节这道题目是给你...原创 2020-03-19 12:27:49 · 817 阅读 · 0 评论 -
Cable master题目分析及解答
题目描述:有n条绳子,它们的长度分别为Li。如果从它们中切割出K条长度相同的绳子的话,这K条绳子每条最长能有多长?答案保留到小数点后2位。样例输入:N=4K=11L={8.02, 7.43, 4.57, 5.39}样例输出:2.00 题目分析:这道题,可以用二分搜索来求解。我们的区间是lb=0到ub=INF,其中INF的值要大于Li中的最大值。每次二分搜索的...原创 2020-03-03 16:35:32 · 877 阅读 · 0 评论 -
求线段上格点的个数并输出格点
什么是格点:格点是指横纵坐标均为整数的点。 题目描述:给定平面上的两个格点P1=(x1,y1)和P2=(x2,y2),线段P1P2上,除了P1和P2以外,一共有几个格点样例输入:1 115 3样例输出:2 93 74 53 题目分析:我们用辗转相除法求最大公约数。求哪两个数的最大公约数?两点横坐标的距离和两点纵坐标的距离。然后再用这两个...原创 2020-02-28 17:12:58 · 560 阅读 · 0 评论 -
csp回收站选址
题目背景及描述:输入输出格式:输入输出样例:输入一:71 22 10 01 11 02 00 1输出一:00100输入二:20 0-100000 10输出二:00000 题目分析:因为涉及到了坐标问题,所以我认为有两种思路:1.二维数组 2.结构体对于二维数组,题目中涉及到了负数坐标,在二维数组中不好表示;其次,想...原创 2020-02-12 10:54:09 · 806 阅读 · 4 评论 -
牛客:有趣的题
题目来源:牛客练习赛22题目:有趣的题A题:https://www.nowcoder.com/acm/contest/132#question 题目内容:给6个火柴棍,问能不能拼成“熊”或者“象”“熊”:4根棍子长度一样,另外2根棍子长度不一样“象”:4根棍子长度一样,另外2根棍子长度一样。如果可以拼出熊,输出“Bear”如果可以拼出象,输出“Elephant”如...原创 2020-02-07 10:58:16 · 176 阅读 · 0 评论 -
Best Cow Line
题目描述:给定长度为N的字符串S,要构造一个长度为N的字符串T。期初,T是一个空串,随后反复进行下列任意操作。从S的头部删除一个字符,加到T的尾部从S的尾部删除一个字符,加到T的尾部目标是要构造字典序尽可能小的字符串T。字典序:从前到后比较两个字符串大小的方法。首先比较第一个字符,如果不同,则第一个字符小的字符串更小,如果相同,则继续比较第二个字符……如此继续,来比较整个字符串的大小。...原创 2020-01-30 10:48:20 · 199 阅读 · 0 评论 -
迷宫的最短路径
题目描述:给定一个大小为N×M的迷宫。迷宫由通道和墙壁组成,每一步可以向邻接的上下左右四格的通道移动。请求出从起点到终点所需的最小步数。请注意,本题假定从起点一定可以移动到终点。 输入示例:N=10,M=10('#'表示墙壁,'.'表示通道,'S'和'G'分别表示起点和终点)#S######.#......#..#.#.##.##.#.#........##.##.#...原创 2020-01-28 17:57:06 · 762 阅读 · 0 评论 -
Lake Counting
题目描述:有一个大小为N×M的园子,雨后积起了水,八连通的积水被认为是连接在一起的。请求出园子里总共有多少水洼?(八连通指的是下图中相对于W的“.”部分) ... .W. ... 输入样例:W........WW..WWW.....WWW....WW...WW..........WW..........W....W......W...W.W.......原创 2020-01-27 19:05:29 · 134 阅读 · 0 评论 -
部分和问题
问题描述:给定整数a1、a2、… 、an,判断是否可以从中选出若干数,使他们的和恰好为k。 输入1:n=4a={1,2,4,7}k=15输出1:No 输入2:n=4a={1,2,4,7}k=13输出2:Yes 题目分析:使用递归函数解决该问题 用C解决问题:#include <std...原创 2020-01-22 11:06:57 · 118 阅读 · 0 评论 -
POJ的题目Ants
题目描述:n只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细,两只蚂蚁相遇时,他们不能交错通过,只能各自反向爬回去。对于每只蚂蚁,我们知道它距离竿子左端的距离xi,但不知道它当前的朝向。请计算所有蚂蚁落下竿子所需的最短时间和最长时间。 题目分析:事实上,两只蚂蚁相遇后,它们保持原样交错而过继续前进也不会有任何问题。这样看...原创 2020-01-20 11:50:42 · 617 阅读 · 0 评论 -
最大价格差
外汇交易可以通过兑换不同国家的货币以赚取汇率差。比如1美元兑换100日元时购入1000美元,然后等汇率变动到1美元兑换108日元时再卖出,这样就可以赚取(108-100)*1000=8000日元。现在请将某货币在t时刻的价格R作为输入数据,计算出价格差Rj-Ri(其中i,j为下标,并且j>i)的最大值。 输入示例16 5 3 1 3 4 3输出示例...原创 2020-01-16 22:02:38 · 283 阅读 · 0 评论