1.Programming (20Points)
Problem 过冬
【题目描述】

土地上开了n朵名贵的花,但随着冬天的来临难以抵挡住寒风,勤劳的你需要给它们修建一个大棚让他们平安度过冬天。现在给你这n朵花的坐标,请你设计一个最小的正方形大棚,使得所有花能够平安度过冬天。(在正方形边上的花认为在大棚内部)

【输入输出格式】

第一行是一个整数n,表示有n朵花。

接下来有n行,每行两个整数x,y表示花的坐标。

输出一个整数,最小的正方形大棚的边长。

【样例】

输入:

5
-1 1
2 3
4 2
2 2
-4 0
输出:

8
【数据范围】

80%的数据满足1 ≤ n ≤ 103,-109 ≤ x,y ≤ 10^9;

100%的数据满足1 ≤ n ≤ 105,-109 ≤ x,y ≤ 10^9。

2.Programming (20Points)
Problem 统计区间字母个数
【题目描述】

设有一个字符串S,它全部由小写字母组成。

现在,老师想知道,字符串S从下标L到下标R的区间中,不同的小写字母各出现了多少次。(注意:字符串下标从0开始)

老师一共会向你询问Q次,每次都会告诉你区间的起始下标L和终止下标R。请你回答每次询问。

【输入描述】

第一行一个字符串S(长度 <= 1000)

第二行为一个整数Q(Q <= 100)

接下来有Q行,每行两个整数L和R。(0 <= L, R < 字符串S的长度))

【输出描述】

对于每次询问,输出一行结果,表示每种小写字母出现的次数。

输出格式为”<小写字母>:<出现次数>”,请按从a到z的次序,输出每种小写字母,以及对应出现的次数。用英文冒号分隔字母和次数,中间没有空格。

每两种小写字母的结果之间用一个空格隔开。

忽略出现次数为0的小写字母。

【样例输入】

abcdefgaaa
2
0 0
1 8
【样例输出】

a:1
a:2 b:1 c:1 d:1 e:1 f:1 g:1
【注释】

第一次询问,区间为[0, 0],即"[a]bcdefgaaa",因此只出现一个小写字母a。

第二次询问,区间为[1, 8],即"a[bcdefgaa]a",因此出现a两次,b~g各一次。

3.Programming (20Points)
Problem 素数间距
【题目描述】

“素数(也称质数)”是指在大于1的自然数中,除了1和它本身以外没有其他因数的自然数。如果两个素数之间没有其他素数,则称这两个素数为一对**“相邻素数”**。例如,2和3是一对“相邻素数”,3和7则不是“相邻素数”,因为在3和7之间有素数5。

请你编写一个程序,对于给定两个数字L和U所限定的区间,你需要

(1)找到一对“相邻素数”C1和C2(L ≤ C1 < C2 ≤ U),使得C2-C1最小。如果在这个区间中有多对“相邻素数”都是间距最小的,则选择其中C1+C2最小的一对。

(2)找到一对“相邻素数”D1和D2(L ≤ D1 < D2 ≤ U),使得D2-D1最大。如果在这个区间中有多对“相邻素数”都是间距最大的,则选择其中D1+D2最小的一对。

注意:在指定区间内可能没有“相邻素数”,此时请按题目要求输出。

【输入描述】

输入两个正整数L和U,且L < U。

【输出描述】

输出包括两行,第一行为区间内间距最小的“相邻素数”(数值小的在前,数值大的在后,中间为空格),第二行为区间内间距最大的“相邻素数”(数值小的在前,数值大的在后,中间为空格)。

若区间内没有相邻素数,则仅输出-1。

【样例输入1】

2 17
【样例输出1】

2 3
7 11
【样例输入2】

14 17
【样例输出2】

-1
【数据范围】

50%的数据满足1 ≤ L < U ≤ 10^5;

80%的数据满足1 ≤ L < U ≤ 10^6;

100%的数据满足1 ≤ L < U ≤ 10^9,且(U-L) ≤ 10^6;

4.Programming (25Points)
Problem 矩阵查询
【题目描述】

给你一个n*m的矩阵A=(a_ij),矩阵左上角坐标为(1,1),右下角坐标为(n,m)。现在有三种对矩阵的操作:

1.A x1 y1 x2 y2 d,表示在左上角坐标为(x1,y1)右下角坐标为(x2,y2)的矩形中所有数加d,即,对于所有(x1 ≤ i ≤ x2,y1≤ j ≤ y2),执行a_ij=a_ij+d;

2.E x1 x2,表示将第x1行元素与第x2行元素交换;

3.Q x y,表示询问矩阵中坐标为(x,y)处的值为多少,即a_xy的值。

例如,给定矩阵 A=

[1,2,3]

[4,5,6]

[7,8,9]

(看成3*3矩阵,下同)

对于操作“A 1 1 2 2 1”,矩阵A变为:

[2,3,3]

[5,6,6]

[7,8,9]

接着对于操作“E 1 3”,矩阵A变为:

[7,8,9]

[5,6,6]

[2,3,3]

对于操作“Q 3 3”,输出3。

【输入输出格式】

第一行两个整数n,m,表示矩阵有n行m列。

接下来的n行,每行m个数,表示矩阵里元素的初始值。

第n+2行有一个整数q,表示操作的次数。

接下来的q行是对操作的描述。

对于每个询问输出结果。

【样例】

输入:

3 4
1 2 3 4
5 6 7 8
9 10 11 12
5
A 1 1 1 2 -1
E 2 3
A 3 3 3 3 2
Q 2 2
Q 3 1
输出:

10
5
【数据范围】

50%的数据满足1 ≤ n,m ≤10:|a_ij| ≤ 200,000,q ≤ 10;

100%的数据满足1 ≤ n,m ≤100:|a_ij| ≤ 200,000,q ≤ 100,|d| ≤ 1000;

5.Programming (15Points)
Problem 擀面皮
【题目描述】

有一块1x1的方形面团(不考虑面团的厚度),其口感值为0。擀面师傅要将其擀成一个N x M(纵向长N,横向宽M)的面皮。师傅的擀面手法娴熟,每次下手,要么横向擀一下(使得横向长度增加1),要么纵向擀一下(使得纵向长度增加1)。此外,当面团(皮)的大小为a x b时,往横向擀一下会使得面的口感值上升H_ab,而往纵向擀一下则会使口感值上升V_ab。

现在,请你来将1x1的面团擀成N x M面皮。显然,从1x1的面团擀成N x M的面皮有多种不同的操作序列可以实现,不同操作序列下得到的最终面皮口感值也可能是不同的。请问最终得到的N x M面皮,口感值最高可为多少?

【输入描述】

第一行两个整数N,M,表示要擀出来面皮的大小(纵向长N,横向宽M)。

接下来有N行,每行M个数。第a行第b列的数值H_ab,表示当面皮大小为a x b时,横向擀一下后,面皮口感的上升值。

再接下来有N行,每行M个数。第a行第b列的数值V_ab,表示当面皮大小为a x b时,纵向擀一下后,面皮口感的上升值。 (0 < N, M < 1000,0 <= H_ab, V_ab <= 1000)

【输出描述】

输出最终得到的N x M面皮的最高的口感值。

【样例输入1】

2 3
1 2 3
4 5 6
11 12 13
14 15 16
【样例输出1】

20
【样例1解释】

一共三种擀面方法:

纵横横:11+4+5=20

横纵横:1+12+5=18

横横纵:1+2+13=16

【样例输入2】

3 3
1 0 2
2 0 2
2 2 0
0 2 2
1 2 1
2 1 2
【样例输出2】

7
【样例2解释】

最优擀面方法为:横(1) + 纵(2) + 纵(2) + 横(2) = 7

challenging Programming questions相关推荐

  1. 前端面试的作品示例_如何回答任何技术面试问题-包括示例

    前端面试的作品示例 Technical interviews can be extremely daunting. From the beginning of each question to the ...

  2. 软件开发向大数据开发过渡_如果您是过渡到数据科学的开发人员,那么这里是您的最佳资源...

    软件开发向大数据开发过渡 by Cecelia Shao 邵Ce It seems like everyone wants to be a data scientist these days - fr ...

  3. Android Studio打开DDMS : An error has occurred URIUtil

    问题 打开Android Studio Tools->Android->Android Device Monitor报错: An error has occurred. See the l ...

  4. 数据暑假实习面试_面试数据科学实习如何准备

    数据暑假实习面试 Unfortunately, on this occasion, your application was not successful, and we have appointed ...

  5. 软件自学成才到公司要学历吗_作为一名自学成才的移动开发人员,我在旅途中学到了什么

    软件自学成才到公司要学历吗 In this post, I'll share my entire journey about how I became a professional mobile de ...

  6. 中学编程_您可以从30岁的第一次编程采访中学到什么

    中学编程 by Sean Choi 通过蔡恩 您可以从30岁的第一次编程采访中学到什么 (What you can learn from a 30-year-old's first coding in ...

  7. Algorithms Part 1-Question 4- SCC 强联通问题

    Algorithms: Design and Analysis, Part 1 本次作业是算法课程中最难的一次.我想,除了算法之外,还牵涉到实现的问题.因为很多编程语言都无法处理极大次数的递归调用. ...

  8. 提高编程技巧的十大方法

    想做1.学习一门新的编程语言(Learn a new programming language) 学习一门新的编程语言将有助于你开拓新的思维方式,特别是当你使用不熟悉的语言时,你将学习到很多种思维方法 ...

  9. 计算机科学常见工具书清单、项目开发清单

    0. 开源精神与开源社区 <大教堂与集市>(The Cathedral & the Bazaar: Musings on Linux and Open Source by an A ...

最新文章

  1. 打开逗游服务器显示无法连接,轮回诀无法连接服务器 进不去解决方法
  2. A damn at han’s Windows phone book 笔记(2:Flashlight)
  3. Linux中文件上传rz使用
  4. 11、InnoDB存储引擎
  5. [Shell]条件判断与流程控制:if, case, for, while, until
  6. 【java reflection】反射工具类总结
  7. 索泰显卡超频软件测试要多少时间,索泰显卡专用超频软件_FireStorm显卡超频 V2.0.1 官方版...
  8. html5游戏制作入门系列教程(六)
  9. Java银行类编程题
  10. 软件工程复习提纲——第十章
  11. 生活中回归分析实际例子_回归分析中R方和调整R方的区别
  12. JAVA集合(四、ConcurrentHashMap)
  13. TP5.x——update更新成功但是返回是0
  14. 问题七:operator+=()是什么鬼函数?(重载操作符)
  15. 微星刀锋 无法进入bios_所有键都无法进入bios,微星主板无法进入bios-
  16. 木马的原理:解析危险的特洛伊木马恶意程序(转)
  17. MongoDB数据库可视化工具
  18. 苹果开发者账号注册和邓白氏申请流程
  19. 服务器都是sas硬盘吗,服务器硬盘SAS与SATA区别介绍
  20. android电视直播卡顿,智能电视或电视盒子经常会在看直播的时候卡顿

热门文章

  1. linux 开启新端口号,linux 查看端口,开启新端口
  2. 【项目管理】项目问题应对思路
  3. 信息系统项目管理师考试时间安排
  4. 《系统集成项目管理工程师》必背100个知识点-59项目总结会议
  5. Leaflet中使用Leaflet.draw插件实现图形交互绘制和编辑(修改图形坐标点)
  6. MyBatis+Mysql实现从记录表中统计符合条件的人数
  7. SpringBoot+ElementUI实现多选设置一月中指定几天的属性,SpringBoot中通过反射实现
  8. Vue中进行断点调试的两种方式(使用外部浏览器和VsCode的 Debug for Chrome插件)
  9. Redis的持久化机制-RDB方式和AOF方式
  10. Winform中使用zxing实现二维码生成(附dll下载)