2017程序设计实践
文章平均质量分 81
+
该博客已停用
这个作者很懒,什么都没留下…
展开
-
18. 吃货
郭老师特别喜欢美食,是个典型的吃货,无聊的时候就会打开大众点评搜寻美食,每次都会选择几家综合评分高的餐厅满足口福,但他最近发现手机里面的大众点评软件貌似不好用了,没办法按照评分进行排序,所以每次都要从上翻到下找出评分最高的几家餐厅,很是苦恼。现在请大家帮忙在纷繁众多的餐厅中找出评分最高的 m 个,推荐给郭老师。输入输入的第一行 n m 为正整数,n 表示餐厅的数目,m 表示需要找出的餐原创 2017-06-18 15:18:25 · 482 阅读 · 0 评论 -
17. 良乡食堂
良乡校区里有很多很多的楼宇建筑,如教学楼,办公楼,学生宿舍等,每个楼宇均通过平面的二维坐标 (xi, yi) 表示位置。现在后勤集团想在校区内建设一个食堂,为了方便师生就餐,所以后勤集团要求所建的食堂到各楼宇的距离之和最短。现在请大家帮忙解决此问题,在这个问题中,距离定义为曼哈顿距离,即点 i 和点 j 之间的距离等于 |xi - xj| + |yi - yj|输入输入第一行为 n 为原创 2017-06-18 15:17:30 · 363 阅读 · 0 评论 -
16. 高速收费站
郭老师每周都要苦思冥想给大家出课程的测试题目,有一天他在高速路上开车发现,高速路上有很多的收费站,但每相邻的两个收费站之间的距离不太一样,有的距离长,有的距离短,所以他想找到间隔最长的两个相邻收费站之间的距离是多少。假设每个收费站都有个正整数的编号,其表示当前的收费站距高速路起点的距离,但由于某些收费站间距离太近,所以使用了同一个编号,现在想请大家帮忙写程序计算相邻的两个收费站之间的最长距离是原创 2017-06-18 15:16:19 · 657 阅读 · 0 评论 -
15. 数字游戏
高老师为了活跃课堂气氛,在课件的时候带领同学做了一个数字游戏,每位同学被分配一组非负整数,同学可以将这些数排列起来,组成一个最大的数。比如,有四个数 123、124、56 和 90,可以组成的数是 1231245690、1241235690、5612312490、9012312456 和 9056124123 等等,但其中最大的就是 9056124123。现在你要做的就是要找到组合的最大数。原创 2017-06-18 15:15:11 · 579 阅读 · 0 评论 -
14. 逻辑行计数
高老师发明了一种新的语言来开发程序,这个语言的特点如下:有两种形式的字符串,一种为加单引号,另一种加双引号。单引号的字符串可以包含双引号,双引号的字符串也可以包含单引号。字符串不能分行,其中也不能包含同样的引号字符。有两种注释方式:@字符为行注释,而双括号(())内的文本为块注释。块注释不能嵌套,所有在块中的文本均被忽略。一个块可以包含几行文本。注释不能出现在字符串内。在块注释中的行注释字原创 2017-06-18 15:14:18 · 645 阅读 · 0 评论 -
13. 压缩文本
压缩是一种有效的减小数据量的方法,目前已经被广泛应用于各种类型的信息系统之中。一种压缩文本的方法如下:原始文本文件中的非字母的字符,直接拷贝到压缩文件中;原始文件中的词(全部由字母组成),如果是第一次出现,则将该词加入到一个词的列表中,并拷贝到压缩文件中;否则该词不拷贝到压缩文件中,而是将该词在词的列表中的位置拷贝到压缩文件中;词的列表的起始位置为 1。词的定义为文本中由大小写字母组成原创 2017-06-18 15:13:26 · 2300 阅读 · 0 评论 -
12. 正则表达式
正则表达式 是一个非常强大而实用的工具,可以用一个模式串匹配一系列符合规则的字符串。现在就请大家实现一个正则表达式的匹配工具。虽然正则表达式的规则很复杂,但其中的核心规则,只要实现就可以处理大多数的问题:c:匹配任意字母c.:匹配任意的单个字符^:匹配输入字符串的开头$:匹配输入字符串的结尾*:匹配前一个字符的零个或者多个出现。例如 zo* 可以匹配 z、zo、zoo、zooo原创 2017-06-18 15:12:23 · 1582 阅读 · 0 评论 -
11. 千字文
在古代中国,《三字经》、《百家姓》、《千字文》被合称为三、百、千,都是非常重要的启蒙教育课本,广为流传。而其中问世最早的《千字文》更凭借其优美的文字、华丽的辞藻成为中华传统文化的一个重要组成部分,得到了人们的普遍重视和喜爱。在良乡北食堂北侧有几块巨幅的宣传板,上面就是千字文,大家不妨饭后散步的时候去看一看。《千字文》的作者,是梁武帝时代官拜散骑员外郎的周兴嗣。历来在正史上的记载,就这样一笔带过原创 2017-06-18 15:10:44 · 773 阅读 · 0 评论 -
10. 消息加密
高老师最近想开发一款聊天软件,但他遇到了一个棘手的问题,他想将聊天消息加密后再发送。 加密方法如下:创建双字符(假设全部为可见字符,不包含空格)对单字符映射的密码表,比如 “ac”->‘a’,“bc”->‘c’,“ff”->‘z’,“x+”->‘9’。并保证映射均为一一对应,不会出现 “ac”->‘a’,“bc”->‘a’ 或者 “ac”->‘a’,“ac”->‘c’这种情况。按照加密表将原创 2017-06-18 15:09:46 · 694 阅读 · 2 评论 -
9. 同构词分组
我们现在做一个单词游戏,游戏规则为将给定的一系列单词按照同构词(由相同字母组成,但可能顺序不同的单词)规则进行分组。例如:eat tea tan ate nat bat上述为5个单词,按照同构词的规则,我们可以将其分为三组ate eat teabatnat tan现在请你编程实现同构词的分组。输入输入包含两行,第一行输入整数 n(1 ≤ n ≤ 50)表示单词的个数,第原创 2017-06-18 15:08:52 · 1734 阅读 · 0 评论 -
8. 计算器PLUS
高老师的学术科研开展的如火如荼,但最近有件事让他很烦恼,在做学术研究过程中,经常需要对很大很大的数据进行计算,而现有的计算器没办法满足这种计算需求,所以现在想请大家帮忙实现一个计算器PLUS版。为了减少大家的工作量,高老师已经将函数的输入输出接口定义完成,你只需编写计算器PLUS的核心部分。例如 plus() , minus() 和 multiply() 函数,有三个char * 类型的参原创 2017-06-18 15:07:09 · 1300 阅读 · 0 评论 -
7. 郭老师家的果园
郭老师家有个果园,每年到了秋收的时候都会收获很多不同种类的果子。他决定把所有的果子合成一堆,但由于体力有限,郭老师在每次合并的时候只能将两堆果子合并到一起。假设有 n 堆果子,那么经过 n-1 次合并即可完成任务,且消耗的总体力等于每次合并所消耗的体力之和。因为郭老师还需要保留体力将果子运回家,所以在合并果子过程中要尽可能地节省体力。假定每个果子重量均为1,并且已知果子的种类数和每种果子的数目原创 2017-06-18 15:05:50 · 1104 阅读 · 0 评论 -
6. 良乡足球场
良乡足球场有着优质的草坪,为了进一步美化草坪,学校体育部计划使用割草机对草坪进行修剪,进而得到多种多样的图案。由于割草机只能横向或竖向割草,且每次割草都会预先设定高度,割完后会把比设定高度高的草都割成设定的高度。假设足球场中有一个 n * m 的草坪 (1输入第一行包含两个整数 n 和 m。接下来为 n 行输入,每行包含 m 个不大于100的正整数。输出如果可以修剪成输入的原创 2017-06-18 15:04:52 · 602 阅读 · 0 评论 -
5. 定情礼物
高老师为了追求心爱的女神,打算去商场购买一款高档的珍珠项链作为定情礼物,恰巧商场正在搞优惠促销活动,活动规则:1. 每条项链由N个随机排列的红色、白色和蓝色的珠子组成(32. 参与者从项链的某处将它截断拉直;接着从一端向另外一端收集同颜色的珠子,直到碰到一个不同颜色的珠子为止;然后再从另外一端做同样的操作。(一端收集的珠子颜色可以不同于另一端的。)3. 当遇到白色的珠子时,它既可以作为原创 2017-06-18 15:04:02 · 1247 阅读 · 0 评论 -
4. Stacks of Flapjacks
Stacks and Queues are often considered the bread and butter of data structures and find use in architecture, parsing, operating systems, and discrete event simulation. Stacks are also important in the原创 2017-06-18 15:03:12 · 382 阅读 · 0 评论 -
3. Where's Waldorf
Given an m by n grid of letters and a list of words, find the location in the grid at which the word can be found.A word matches a straight, uninterrupted line of letters in the grid. A word can mat原创 2017-06-18 15:01:12 · 366 阅读 · 0 评论 -
2. 猴子分桃
有一堆桃子和N只猴子,第一只猴子将桃子平均分成了M堆后,还剩了1个,它吃了剩下的一个,并拿走一堆。后面的猴子也和第1只进行了同样的做法,请问N只猴子进行了同样做法后这一堆桃子至少还剩了多少个桃子(假设剩下的每堆中至少有一个桃子)?而最初时的那堆桃子至少有多少个?输入输入包含二个数据,数据间用空格隔开。第一个数据为猴子的只数N(1≤N≤10),第二个数据为桃子分成的堆数M(2≤M≤7)。原创 2017-06-18 14:59:53 · 447 阅读 · 0 评论 -
19. 编程排名
郭老师每次课程都会给大家安排编程任务,同学们通过网络教室的Online Judge (OJ) 系统提交编程题目代码,OJ对每次提交的程序进行自动评判,结果是 AC 或某种特定的错误,想必同学们都受尽各种折磨(阴险表情,自行补脑)。为了刺激和鼓励同学们的编程热情,郭老师特意在网络教室的右侧边栏开通了“编程排名”板块,当两名同学做出的题目数量相同时,会按照其使用的时间进行进一步的排名。时间由两部分原创 2017-06-18 15:19:21 · 399 阅读 · 0 评论 -
20. 电话号码
商业单位需要容易记忆的电话号码,有一些方法可以让电话号码变得更容易记忆。譬如,可以把电话号码写成单词或短语,如 MON-GLOP 可以代表滑铁卢大学的电话。有时仅仅是把号码的一部分写成单词,如打 310-GINO 便可向 GINO 比萨饼店定购比萨。另一种让电话号码容易记忆的方法是将数字用一种容易记的方式组合起来,譬如 3-10-10-10 也可以代表 GINO 比萨饼店。电话号码的标准形式是原创 2017-06-18 15:24:58 · 1181 阅读 · 0 评论 -
21. 吃货续
上次郭老师让大家帮忙找餐厅,今天他又来请大家帮忙了。郭老师想从自己的当前位置用最快的时间到达某一餐厅,他每次只能按照上、下、左、右四个方向移动,每次移动计为 1 个时间,但由于路况纷繁复杂,中间有很多的路障,导致他不得不绕过这些路障。此时,具有魔性的高老师出现了,他帮助郭老师在途中的某些点放置了穿梭机,任意两个穿梭机之间可以完成瞬间移动(瞬间移动不耗费时间)。输入第一行包含两个数字 n m原创 2017-06-18 15:27:18 · 320 阅读 · 0 评论 -
程设讨论区妙着集锦
这篇博文主要是记录程设讨论区里大佬发表的一些不错的想法亦或是些经验教训,由于目前要忙于考试,可能直接就从讨论区里复制粘贴了,等有时间再做修改。1.网教的WA、RE、TLE等可能不准,有时候明明是内存爆了,结果它显示是TLE,然而显示的时间还尼玛是0.003s,有时候明明应该报RE,它直接报WA了,导致debug时方向与思路不能及时正确的调整,反正网教的编译器就是个上古时期的鬼畜般的存在,所以一原创 2017-06-19 17:22:00 · 332 阅读 · 0 评论 -
36. 北理工美女
众所周知,北理工有很多美女,每个女生都喜欢漂亮的衣服。有一天,她们获得了一个巨大的矩形布料,她们想把这块布料裁剪成一些小的矩形布料,用来制作围巾。但是,不同的人喜欢不同的款式,因此他们开始投票为每一种款式进行定价,并把这些款式和价格记录在本子上。她们有一个机器可以将一块布料水平或垂直的裁剪成两块更小的矩形布料,且一切到底。现在她们请你帮忙,利用这个机器将原始的那块巨大矩形布料裁剪成本子上记录的原创 2017-06-18 15:41:15 · 1136 阅读 · 0 评论 -
35. 双塔问题
从前,有一个古老的帝国有两个形状不同的塔分别在不同的两个城市里。这两个塔是用圆形的砖一块一块建成的。这些圆形砖的高度是一样的,其半径都是整数。很明显,尽管这两个塔形状不同,但造塔所使用的圆形砖却有很多是相同的。过了很多年,一个国王命令他的建筑师们移除两个塔的部分砖以便使它们的形状完全一样,同时使两个塔的高度尽可能的高,并且新塔的砖瓦的排列顺序必须与原来的一样。国王认为这样的两个塔象征着这两个城原创 2017-06-18 15:40:28 · 448 阅读 · 0 评论 -
34. Little Bishops
A bishop is a piece used in the game of chess which is played on a board of square grids. A bishop can only move diagonally from its current position and two bishops attack each other if one is on the原创 2017-06-18 15:39:48 · 383 阅读 · 0 评论 -
33. Treats for the Cows
FJ has purchased N (1 The treats are interesting for many reasons:The treats are numbered 1..N and stored sequentially in single file in a long box that is open at both ends. On any day, FJ can原创 2017-06-18 15:38:55 · 328 阅读 · 0 评论 -
32. 穿越矩阵
现在有一个 m * n 的整数矩阵,请你编写一个程序计算出一条从左到右穿过矩阵的路径,并使此路径的费用最小。路径从矩阵的左侧的第一列的任意单元格开始,逐步穿过矩阵到达最右侧的一列的任意单元格。每一步是指从某单元格进入它一列的相邻单元格(如下图,可以是横向或斜向)。矩阵的第一行和最后一行实际是相邻的,你可以想象矩阵是包裹在一个横放的圆柱体外面。路径的花费是指这条路径所穿越的所有单元格中的数字原创 2017-06-18 15:37:48 · 316 阅读 · 0 评论 -
31. 括号序列
一个括号序列是指一个由'(', ')', '[', ']'四种字符组成的字符串。一个只包含数字,加号'+',和上述四种括号的合法算数表达式,去掉数字和加号之后得到的括号序列成为合法的括号序列。我们定义空串也是合法的括号序列。例如(1) + [2], ([3]), 4 + [5]相应的括号序列 "()[]", "([])", "[]"都是合法的括号序列。而(6 + 7], [8 + ((9对原创 2017-06-18 15:37:00 · 764 阅读 · 0 评论 -
30. 序列构造
给定两个长度为 n 的正整数序列 A=[a1,a2,…,an] 和 B=[b1,b2,…,bn],现在你选择 k 个数构成序列 P=[p1,p2,…,pk] 使得:序列 P 中的元素是不重复的1≤pi≤n,其中1≤i≤k2×(ap1+⋯+apk) 大于序列 A 所有元素的和2×(bp1+⋯+bpk) 大于序列 B 所有元素的和k 小于等于 ⌊n2⌋+1现在请你找原创 2017-06-18 15:36:08 · 665 阅读 · 0 评论 -
29. 邮件解密
某一天,郭老师收到一封离奇的邮件,邮件内容为一大段的字符串文本(字符个数多达 100000 个),他完全看不懂这封邮件想表达什么意思,于是他找到一位密码学大神帮忙,为了留存神秘感,密码大神并没有告诉郭老师最终的答案,只告诉他要按照一些规则进行解密,首先开启两封空邮件 t 和 u,随后可进行两种操作:在原始邮件内容 s 中,提取第一个字符,放到邮件 t 的末尾在邮件 t 内,提取最后一个字符原创 2017-06-18 15:35:23 · 1142 阅读 · 0 评论 -
28. 退治大赛
在一次异变中,早苗酱和灵梦展开退治大赛。假设现在一共有 N 个妖怪,每个妖怪残机数为 A[i]。由早苗酱开始两个人轮流行动。早苗酱每次能伤害至多一个妖怪,将其残机数减一(也可以选择不作为);灵梦每次一定会伤害所有妖怪,全体残机数减一。当有一个妖怪的残机数在某人的回合被减至0或更少时,这个妖怪被退治(消失),同时该人得一分。现在早苗酱想知道自己最多能拿多少分。输入输入包含多组测试用例,第一行原创 2017-06-18 15:34:06 · 403 阅读 · 1 评论 -
27. 吃披萨
同学们都在辛苦编写程设的题目,为了犒劳大家,高老师决定请大家吃披萨。由于上课的人很多,一块披萨肯定是不够分的,但是披萨店里同种型号的披萨又没有那么多,所以外卖送过来的披萨大小都有。为了公平起见,高老师要给所有人分一样大块,可以剩下,但是绝不能将某两个披萨剩下的边角料拼到一起算作一块,当然,高老师自己也要一块。 现在你需要编写一个程序,帮助高老师算一算每个人能分到的披萨最大面积。 输入输入包原创 2017-06-18 15:33:12 · 889 阅读 · 0 评论 -
26. 贪婪的你
现在大家都在为完成网络教室的题目而奋斗。假设一共有 n 道题目,每道题目 i 都需要一个单位时间来完成。同时每道题目 i 有完成期限 di 和相应的分数 pi 。此处的完成期限指应在开始时间之后 di 个时间单位内(含di)完成,不允许迟交。假设所有题目同时开始计时,当且仅当题目 i 在它的期限截止以前被完成,你才能获得 pi 的分数。完成期限的设定使得你不一定能将所有题目全都按时完成。因原创 2017-06-18 15:32:14 · 290 阅读 · 0 评论 -
25. 赶飞机
郭老师接到临时的出差任务,于是他匆忙的打车赶赴机场,眼看就要赶不上飞机了,幸好机场大厅里面有一些自动人行传送带,他决定利用它来减少到达候机楼的时间,但是他还是很着急,所以决定跑一段来加快达到的时间,现在假设:1. 每个人行传送带都有一定的速度 v,人行传送带之间没有重叠。2. 郭老师行走的速度是 w,那么在传送带上走的速度是 w + v3. 郭老师跑步的速度是 r,那么在传送带上跑的速原创 2017-06-18 15:31:15 · 374 阅读 · 0 评论 -
24. 走迷宫
走迷宫是一个经典的问题:有一张矩形的地图,地图中有 R*C 个格子,每个格子要么是墙,要么是空地。给定一个起点和一个终点(起点和终点都是空地),问能否从起点走到终点。郭老师按照广度优先搜索的思路,写了如下代码:define process_cell(r, c): if (r, c) is not outside the maze: if cell at (r, c) i原创 2017-06-18 15:30:18 · 391 阅读 · 0 评论 -
23. 单词接龙
给定两个单词(开始词与结束词)及字典列表,找出可以从开始词到结束词之间最短的转换序列,转换规则:转换系列中所有的单词等长每次转换只允许改变一个字母每次转换得到的词必须在字典列表中开始词不一定在字典中如给定如下的开始词,结束词及字典列表:beginWord = "hit"endWord = "cog"dictList = ["hot","dot","dog","lot","log"原创 2017-06-18 15:29:09 · 785 阅读 · 0 评论 -
22. 序列划分
给定一个由非负整数组成的序列及正整数 m,将原始的序列划分成 m 个连续的子序列。针对每个划分,计算 m 个子序列中最大和,针对所有可能的划分,找出最小的最大子序列和。如,给定序列为 [7,2,5,10,8] 及划分个数 m = 2,可得到 4 种划分:[7] 和 [2,5,10,8],最大子序列和为 25[7,2] 和 [5,10,8],最大子序列和为 23[7,2,5] 和 [10,8原创 2017-06-18 15:28:11 · 2436 阅读 · 0 评论 -
1. 不高兴的津津
津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。输入输入包括七行数据,分别转载 2017-06-18 14:58:28 · 656 阅读 · 0 评论