![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CSP
Genius Soul
我是小学生。。。
展开
-
求两数最大公因数的解释
转发自:Leetcode-cnpython3代码实现:def gcd(a,b): if a % b == 0 : return b return gcd(b,a%b)先说操作步骤,然后再讲这么做的原理是什么若两数相等则一定不互质若两数不等,分别为a和b,不妨设a>b则a和b的最大公约数就是b和a%b的最大公约数递归进行,若 a%b=0时,则返回b下面解释每一步的意思和原理,这里主要说明一下第3步的原理在纸上一长一短两条直线,长的代表a,短的代表b在两条线段上各从头开始截取长度转载 2022-02-10 18:10:20 · 210 阅读 · 0 评论 -
CSP201609-2(火车购票)(Java 100分)
问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10号,依次类推,第20排是96到100号。 购票时,一个人可能购一张或多张票,最多不超过5张。如果这几张票可以安排在同一排编号相邻的座位,则应该安排在编号最小的相邻座位。否则应该安排在编号最...原创 2018-12-08 19:31:09 · 385 阅读 · 0 评论 -
CSP201604-3(路径解析)(Java 100分)
问题描述 在操作系统中,数据通常以文件的形式存储在文件系统中。文件系统一般采用层次化的组织形式,由目录(或者文件夹)和文件构成,形成一棵树的形状。文件有内容,用于存储数据。目录是容器,可包含文件或其他目录。同一个目录下的所有文件和目录的名字各不相同,不同目录下可以有名字相同的文件或目录。 为了指定文件系统中的某个文件,需要用路径来定位。在类 Unix 系统(Linux、Max OS X、F...原创 2018-12-01 18:15:53 · 382 阅读 · 0 评论 -
CSP201604-2(俄罗斯方块)(Java 100分)
问题描述 俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游戏。 游戏在一个15行10列的方格图上进行,方格图上的每一个格子可能已经放置了方块,或者没有放置方块。每一轮,都会有一个新的由4个小方块组成的板块从方格图的上方落下,玩家可以操作板块左右移动放到合适的位置,当板块中某一个方块的下边缘与方格图上的方块上边缘重合或者达到下边界时,板块不再移动,如果此时方格图的某一行全放满了方块,...原创 2018-12-01 11:04:20 · 205 阅读 · 0 评论 -
CSP201604-1(折点计数)(Java 100分)
问题描述 给定n个整数表示一个商店连续n天的销售量。如果某天之前销售量在增长,而后一天销售量减少,则称这一天为折点,反过来如果之前销售量减少而后一天销售量增长,也称这一天为折点。其他的天都不是折点。如下图中,第3天和第6天是折点。 给定n个整数a1, a2, …, an表示销售量,请计算出这些天总共有多少个折点。 为了减少歧义,我们给定的数据保证:在这n天中相邻两天的销售量总是不...原创 2018-11-29 19:37:24 · 639 阅读 · 2 评论 -
CSP201512-3(画图)(Java 90分)
问题描述 用 ASCII 字符来画图是一件有趣的事情,并形成了一门被称为 ASCII Art 的艺术。例如,下图是用 ASCII 字符画出来的 CSPRO 字样。 ….………_… ././.||….|……/.… |.|…_.|.|).|.|).|.|.|.| |.|.).|…/|….<|.||.| ._|/||…||._\___/. 本题要求编程实现一个用 ASC...原创 2018-11-24 21:13:34 · 345 阅读 · 1 评论 -
CSP201512-2(消除类游戏)(Java 100分)
问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消除。当有多处可以被消除时,这些地方的棋子将同时被消除。 现在给你一个n行m列的棋盘,棋盘中的每一个方格上有一个棋子,请给出经过一次消除后的棋盘。 请注意:一个棋子可能在某一行和某一列同时被...原创 2018-11-24 19:43:28 · 185 阅读 · 0 评论 -
CSP201509-2(日期计算)(Java 100分)
问题描述 给定一个年份y和一个整数d,问这一年的第d天是几月几日? 注意闰年的2月有29天。满足下面条件之一的是闰年: 1) 年份是4的整数倍,而且不是100的整数倍; 2) 年份是400的整数倍。输入格式 输入的第一行包含一个整数y,表示年份,年份在1900到2015之间(包含1900和2015)。 输入的第二行包含一个整数d,d在1至365之间。输出格式 输出两...原创 2018-11-18 15:47:57 · 243 阅读 · 0 评论 -
CSP201512-1(数位之和)(Java 100分)
问题描述 给定一个十进制整数n,输出n的各位数字之和。输入格式 输入一个整数n。输出格式 输出一个整数,表示答案。样例输入20151220样例输出13样例说明 20151220的各位数字之和为2+0+1+5+1+2+2+0=13。评测用例规模与约定 所有评测用例满足:0 ≤ n ≤ 1000000000。 Java代码:p...原创 2018-11-21 15:29:37 · 200 阅读 · 0 评论 -
CSP201509-4(高速公路)(Java 90分)
问题描述 某国有n个城市,为了使得城市间的交通更便利,该国国王打算在城市之间修一些高速公路,由于经费限制,国王打算第一阶段先在部分城市之间修一些单向的高速公路。 现在,大臣们帮国王拟了一个修高速公路的计划。看了计划后,国王发现,有些城市之间可以通过高速公路直接(不经过其他城市)或间接(经过一个或多个其他城市)到达,而有的却不能。如果城市A可以通过高速公路到达城市B,而且城市B也可以通过高速...原创 2018-11-18 17:28:55 · 384 阅读 · 0 评论 -
CSP201604-4(游戏)(Java 100分)
问题描述 小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制的角色开始的时候站在第一行第一列,目标是前往第n行第m列。 方格图上有一些方格是始终安全的,有一些在一段时间是危险的,如果小明控制的角色到达一个方格的时候方格是危险的,则小明输掉了游戏,如果小明的角色到达了第n行第m列,则小明过关。第一行第一列和第n行第m列永远都是安全的。 每个单位时间,小明的角色必须向上下左右四...原创 2018-12-08 16:25:28 · 248 阅读 · 0 评论 -
CSP201609-1(最大波动)(Java100分)
问题描述 小明正在利用股票的波动程度来研究股票。小明拿到了一只股票每天收盘时的价格,他想知道,这只股票连续几天的最大波动值是多少,即在这几天中某天收盘价格与前一天收盘价格之差的绝对值最大是多少。输入格式 输入的第一行包含了一个整数n,表示小明拿到的收盘价格的连续天数。 第二行包含n个正整数,依次表示每天的收盘价格。输出格式 输出一个整数,表示这只股票这n天中的最大波动值。样例...原创 2018-12-08 17:59:46 · 174 阅读 · 0 评论 -
CSP201703-4(地铁修建)(Java 75分)
问题描述A市有n个交通枢纽,其中1号和n号非常重要,为了加强运输能力,A市决定在1号到n号枢纽间修建一条地铁。 地铁由很多段隧道组成,每段隧道连接两个交通枢纽。经过勘探,有m段隧道作为候选,两个交通枢纽之间最多只有一条候选的隧道,没有隧道两端连接着同一个交通枢纽。 现在有n家隧道施工的公司,每段候选的隧道只能由一个公司施工,每家公司施工需要的天数一致。而每家公司最多只能修建一条候选隧道。...原创 2019-03-15 18:26:09 · 265 阅读 · 1 评论 -
CSP201703-3(Markdown)(Java 100分)
问题描述Markdown 是一种很流行的轻量级标记语言(lightweight markup language),广泛用于撰写带格式的文档。例如以下这段文本就是用 Markdown 的语法写成的: 这些用 Markdown 写成的文本,尽管本身是纯文本格式,然而读者可以很容易地看出它的文档结构。同时,还有很多工具可以自动把 Markdown 文本转换成 HTML 甚至 Word、PDF 等...原创 2019-03-15 01:46:17 · 302 阅读 · 0 评论 -
CSP201703-1(分蛋糕)(Java 100分)
问题描述 小明今天生日,他有n块蛋糕要分给朋友们吃,这n块蛋糕(编号为1到n)的重量分别为a1, a2, …, an。小明想分给每个朋友至少重量为k的蛋糕。小明的朋友们已经排好队准备领蛋糕,对于每个朋友,小明总是先将自己手中编号最小的蛋糕分给他,当这个朋友所分得蛋糕的重量不到k时,再继续将剩下的蛋糕中编号最小的给他,直到小明的蛋糕分完或者这个朋友分到的蛋糕的总重量大于等于k。 请问当小明的...原创 2018-12-10 20:43:33 · 242 阅读 · 0 评论 -
CSP201612-4(压缩编码)(Java 100分)
问题描述 给定一段文字,已知单词a1, a2, …, an出现的频率分别t1, t2, …, tn。可以用01串给这些单词编码,即将每个单词与一个01串对应,使得任何一个单词的编码(对应的01串)不是另一个单词编码的前缀,这种编码称为前缀码。 使用前缀码编码一段文字是指将这段文字中的每个单词依次对应到其编码。一段文字经过前缀编码后的长度为: L=a1的编码长度×t1+a2的编码长度×t...原创 2018-12-10 17:06:52 · 353 阅读 · 0 评论 -
CSP201612-3(权限查询)(Java 90分)
问题描述 授权 (authorization) 是各类业务系统不可缺少的组成部分,系统用户通过授权机制获得系统中各个模块的操作权限。 本题中的授权机制是这样设计的:每位用户具有若干角色,每种角色具有若干权限。例如,用户 david 具有 manager 角色,manager 角色有 crm:2 权限,则用户 david 具有 crm:2 权限,也就是 crm 类权限的第 2 等级的权限。...原创 2018-12-10 00:46:32 · 149 阅读 · 1 评论 -
CSP201612-2(工资计算)(Java 100分)
问题描述 小明的公司每个月给小明发工资,而小明拿到的工资为交完个人所得税之后的工资。假设他一个月的税前工资(扣除五险一金后、未扣税前的工资)为S元,则他应交的个人所得税按如下公式计算: 1) 个人所得税起征点为3500元,若S不超过3500,则不交税,3500元以上的部分才计算个人所得税,令A=S-3500元; 2) A中不超过1500元的部分,税率3%; 3) A中超过1500元...原创 2018-12-09 22:58:11 · 373 阅读 · 0 评论 -
CSP201612-1(中间数)(Java 100分)
问题描述 在一个整数序列a1, a2, …, an中,如果存在某个数,大于它的整数数量等于小于它的整数数量,则称其为中间数。在一个序列中,可能存在多个下标不相同的中间数,这些中间数的值是相同的。 给定一个整数序列,请找出这个整数序列的中间数的值。输入格式 输入的第一行包含了一个整数n,表示整数序列中数的个数。 第二行包含n个正整数,依次表示a1, a2, …, an。输出格式...原创 2018-12-09 21:22:20 · 184 阅读 · 0 评论 -
CSP201609-4(交通规划)(Java 100分)
问题描述 G国国王来中国参观后,被中国的高速铁路深深的震撼,决定为自己的国家也建设一个高速铁路系统。 建设高速铁路投入非常大,为了节约建设成本,G国国王决定不新建铁路,而是将已有的铁路改造成高速铁路。现在,请你为G国国王提供一个方案,将现有的一部分铁路改造成高速铁路,使得任何两个城市间都可以通过高速铁路到达,而且从所有城市乘坐高速铁路到首都的最短路程和原来一样长。请你告诉G国国王在这些条件...原创 2018-12-09 21:05:07 · 399 阅读 · 1 评论 -
CSP201609-3(炉石传说)(Java 100分)(只有78行代码)
问题描述 《炉石传说:魔兽英雄传》(Hearthstone: Heroes of Warcraft,简称炉石传说)是暴雪娱乐开发的一款集换式卡牌游戏(如下图所示)。游戏在一个战斗棋盘上进行,由两名玩家轮流进行操作,本题所使用的炉石传说游戏的简化规则如下: * 玩家会控制一些角色,每个角色有自己的生命值和攻击力。当生命值小于等于 0 时,该角色死亡。角色分为英雄和随从。 * 玩家各...原创 2018-12-08 23:34:54 · 654 阅读 · 1 评论 -
CSP201509-3(模板生成系统)(Java 90分)
问题描述 成成最近在搭建一个网站,其中一些页面的部分内容来自数据库中不同的数据记录,但是页面的基本结构是相同的。例如,对于展示用户信息的页面,当用户为 Tom 时,网页的源代码是而当用户为 Jerry 时,网页的源代码是 这样的例子在包含动态内容的网站中还有很多。为了简化生成网页的工作,成成觉得他需要引入一套模板生成系统。 模板是包含特殊标记的文本。成成用到的模板只包含一种特...原创 2018-10-16 23:05:14 · 364 阅读 · 0 评论 -
CSP201503-4(网络延时)(Java100分)
问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机、交换机与电脑之间使用网络连接。交换机按层级设置,编号为1的交换机为根交换机,层级为1。其他的交换机都连接到一台比自己上一层的交换机上,其层级为对应交换机的层级加1。所有的终端电脑都直接连接到交换机上。 当信息在电脑、交换机之间传递时,每一步只能通过自己传递到自己所连接的另一台电脑或交换机。请问,电脑与电脑之间...原创 2018-07-26 12:42:37 · 291 阅读 · 0 评论 -
CSP201503-3(节日)(Java100分)
问题描述 有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。 现在,给你a,b,c和y1, y2(1850 ≤ y1, y2 ≤ 2050),希望你输出从公元y1年到公元y2年间的每年的a月的第b个星期c的日期。 提示:关于闰年的规则:年份是400的整数倍时是闰年,否则年份是4的倍数并且不是100的倍数时是闰年,...原创 2018-07-26 00:43:25 · 396 阅读 · 0 评论 -
CSP201312-1(出现次数最多的数)(Java100分)
问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。 输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。 输出格式 输出这n个次数中出现次数最多的数。如果这样的数有多...原创 2018-04-05 13:46:04 · 332 阅读 · 0 评论 -
博主计划
我是一名大二的Student计划先把csp的所有题都写一遍,然后开始写蓝桥杯的历届省赛题和决赛题。我主要用Java编程,C和C++基本忘完了。 我是一个菜逼,希望大佬海涵,多谢Hello world...原创 2018-04-05 13:28:29 · 168 阅读 · 0 评论 -
CSP201409-4(最优配餐)(Java 80分)(运行超时)
问题描述 栋栋最近开了一家餐饮连锁店,提供外卖服务。随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题。 栋栋的连锁店所在的区域可以看成是一个n×n的方格图(如下图所示),方格的格点上的位置上可能包含栋栋的分店(绿色标注)或者客户(蓝色标注),有一些格点是不能经过的(红色标注)。 方格图中的线表示可以行走的道路,相邻两个格点的距离为1。栋栋要送餐必须走可以行走的道路...原创 2018-04-16 20:21:02 · 302 阅读 · 0 评论 -
CSP201409-3(字符串匹配)(Java 100分)
问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。 输入格式 输入的第一行包含一个字符串S,由大小写英文字母组成。 第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感...原创 2018-04-16 16:55:25 · 236 阅读 · 0 评论 -
CSP201409-2(画图)Java 100分)
问题描述 在一个定义了直角坐标系的纸上,画一个(x1,y1)到(x2,y2)的矩形指将横坐标范围从x1到x2,纵坐标范围从y1到y2之间的区域涂上颜色。 下图给出了一个画了两个矩形的例子。第一个矩形是(1,1) 到(4, 4),用绿色和紫色表示。第二个矩形是(2, 3)到(6, 5),用蓝色和紫色表示。图中,一共有15个单位的面积被涂上颜色,其中紫色部分被涂了两次,但在计算面积时只计算一...原创 2018-04-13 00:17:24 · 550 阅读 · 0 评论 -
CSP201409-1(相邻数对)(Java 100 分)
问题描述 给定n个不同的整数,问这些数中有多少对整数,它们的值正好相差1。 输入格式 输入的第一行包含一个整数n,表示给定整数的个数。 第二行包含所给定的n个整数。 输出格式 输出一个整数,表示值正好相差1的数对的个数。 样例输入 6 10 2 6 3 7 8 样例输出 3 样例说明 值正好相差1的数对包括(2, 3), (6, 7), (7, 8)。...原创 2018-04-10 00:05:23 · 236 阅读 · 0 评论 -
CSP201403-5(任务调度)(无代码)
问题描述 有若干个任务需要在一台机器上运行。它们之间没有依赖关系,因此 可以被按照任意顺序执行。 该机器有两个 CPU 和一个 GPU。对于每个任务,你可以为它分配不 同的硬件资源: 1. 在单个 CPU 上运行。 2. 在两个 CPU 上同时运行。 3. 在单个 CPU 和 GPU 上同时运行。 4. 在两个 CPU 和 GPU 上同时运行。 一个任务开...原创 2018-04-09 23:56:00 · 1014 阅读 · 0 评论 -
CSP201403-4(无线网络)(Java 100分)
问题描述 目前在一个很大的平面房间里有 n 个无线路由器,每个无线路由器都固定在某个点上。任何两个无线路由器只要距离不超过 r 就能互相建立网络连接。 除此以外,另有 m 个可以摆放无线路由器的位置。你可以在这些位置中选择至多 k 个增设新的路由器。 你的目标是使得第 1 个路由器和第 2 个路由器之间的网络连接经过尽量少的中转路由器。请问在最优方案下中转路由器的最少个数是多少?...原创 2018-04-09 19:45:45 · 375 阅读 · 0 评论 -
CSP2014203-3(命令行选项)(Java100分)
问题描述 请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔。这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工具名字之后可能会包含若干选项,然后可能会包含一 些不是选项的参数。 选项有两类:带参数的选项和不带参数的选项。一个合法的无参数选项的形式是一个减号后面跟单个小写字母,如”...原创 2018-04-08 16:59:25 · 713 阅读 · 1 评论 -
CSP201312-2(ISBN号码)(Java100分)
问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第...原创 2018-04-05 14:37:04 · 507 阅读 · 0 评论 -
CSP201312_3(最大的矩形)(Java100分)
问题描述 在横轴上放了n个相邻的矩形,每个矩形的宽度是1,而第i(1 ≤ i ≤ n)个矩形的高度是hi。这n个矩形构成了一个直方图。例如,下图中六个矩形的高度就分别是3, 1, 6, 5, 2, 3。 请找出能放在给定直方图里面积最大的矩形,它的边要与坐标轴平行。对于上面给出的例子,最大矩形如下图所示的阴影部分,面积是10。 输入格式 第一行包含一个整数n,即矩形的数量原创 2018-04-05 23:19:23 · 308 阅读 · 0 评论 -
CSP201312-4(有趣的数)(Java100分)
问题描述 我们把一个数称为有趣的,当且仅当: 1. 它的数字只包含0, 1, 2, 3,且这四个数字都出现过至少一次。 2. 所有的0都出现在所有的1之前,而所有的2都出现在所有的3之前。 3. 最高位数字不为0。 因此,符合我们定义的最小的有趣的数是2013。除此以外,4位的有趣的数还有两个:2031和2301。 请计算恰好有n位的有趣的数的个数。由于答案可能...原创 2018-04-06 15:10:35 · 626 阅读 · 0 评论 -
CSP201503-2(数字排序)(Java100分)
问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。 输入格式 输入的第一行包含一个整数n,表示给定数字的个数。 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。 输出格式 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出...原创 2018-07-24 18:45:52 · 455 阅读 · 1 评论 -
CSP201503-1(图像旋转)(Java90分)
问题描述 旋转是图像处理的基本操作,在这个问题中,你需要将一个图像逆时针旋转90度。 计算机中的图像表示可以用一个矩阵来表示,为了旋转一个图像,只需要将对应的矩阵旋转即可。 输入格式 输入的第一行包含两个整数n, m,分别表示图像矩阵的行数和列数。 接下来n行每行包含m个整数,表示输入的图像。 输出格式 输出m行,每行包含n个整数,表示原始矩阵逆时针旋转90度后的...原创 2018-07-24 17:43:41 · 502 阅读 · 3 评论 -
csp201412_4(最优灌溉)(Java100分)
问题描述 雷雷承包了很多片麦田,为了灌溉这些麦田,雷雷在第一个麦田挖了一口很深的水井,所有的麦田都从这口井来引水灌溉。 为了灌溉,雷雷需要建立一些水渠,以连接水井和麦田,雷雷也可以利用部分麦田作为“中转站”,利用水渠连接不同的麦田,这样只要一片麦田能被灌溉,则与其连接的麦田也能被灌溉。 现在雷雷知道哪些麦田之间可以建设水渠和建设每个水渠所需要的费用(注意不是所有麦田之间都可以建立...原创 2018-07-08 22:35:39 · 267 阅读 · 2 评论 -
CSP201412_3(集合竞价)(Java100分)
问题描述 某股票交易所请你编写一个程序,根据开盘前客户提交的订单来确定某特定股票的开盘价和开盘成交量。 该程序的输入由很多行构成,每一行为一条记录,记录可能有以下几种: 1. buy p s 表示一个购买股票的买单,每手出价为p,购买股数为s。 2. sell p s 表示一个出售股票的卖单,每手出价为p,出售股数为s。 3. cancel i表示撤销第i行的记录。 ...原创 2018-07-08 22:00:49 · 591 阅读 · 0 评论