challenging Programming questions
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相关推荐
- 前端面试的作品示例_如何回答任何技术面试问题-包括示例
前端面试的作品示例 Technical interviews can be extremely daunting. From the beginning of each question to the ...
- 软件开发向大数据开发过渡_如果您是过渡到数据科学的开发人员,那么这里是您的最佳资源...
软件开发向大数据开发过渡 by Cecelia Shao 邵Ce It seems like everyone wants to be a data scientist these days - fr ...
- Android Studio打开DDMS : An error has occurred URIUtil
问题 打开Android Studio Tools->Android->Android Device Monitor报错: An error has occurred. See the l ...
- 数据暑假实习面试_面试数据科学实习如何准备
数据暑假实习面试 Unfortunately, on this occasion, your application was not successful, and we have appointed ...
- 软件自学成才到公司要学历吗_作为一名自学成才的移动开发人员,我在旅途中学到了什么
软件自学成才到公司要学历吗 In this post, I'll share my entire journey about how I became a professional mobile de ...
- 中学编程_您可以从30岁的第一次编程采访中学到什么
中学编程 by Sean Choi 通过蔡恩 您可以从30岁的第一次编程采访中学到什么 (What you can learn from a 30-year-old's first coding in ...
- Algorithms Part 1-Question 4- SCC 强联通问题
Algorithms: Design and Analysis, Part 1 本次作业是算法课程中最难的一次.我想,除了算法之外,还牵涉到实现的问题.因为很多编程语言都无法处理极大次数的递归调用. ...
- 提高编程技巧的十大方法
想做1.学习一门新的编程语言(Learn a new programming language) 学习一门新的编程语言将有助于你开拓新的思维方式,特别是当你使用不熟悉的语言时,你将学习到很多种思维方法 ...
- 计算机科学常见工具书清单、项目开发清单
0. 开源精神与开源社区 <大教堂与集市>(The Cathedral & the Bazaar: Musings on Linux and Open Source by an A ...
最新文章
- 打开逗游服务器显示无法连接,轮回诀无法连接服务器 进不去解决方法
- A damn at han’s Windows phone book 笔记(2:Flashlight)
- Linux中文件上传rz使用
- 11、InnoDB存储引擎
- [Shell]条件判断与流程控制:if, case, for, while, until
- 【java reflection】反射工具类总结
- 索泰显卡超频软件测试要多少时间,索泰显卡专用超频软件_FireStorm显卡超频 V2.0.1 官方版...
- html5游戏制作入门系列教程(六)
- Java银行类编程题
- 软件工程复习提纲——第十章
- 生活中回归分析实际例子_回归分析中R方和调整R方的区别
- JAVA集合(四、ConcurrentHashMap)
- TP5.x——update更新成功但是返回是0
- 问题七:operator+=()是什么鬼函数?(重载操作符)
- 微星刀锋 无法进入bios_所有键都无法进入bios,微星主板无法进入bios-
- 木马的原理:解析危险的特洛伊木马恶意程序(转)
- MongoDB数据库可视化工具
- 苹果开发者账号注册和邓白氏申请流程
- 服务器都是sas硬盘吗,服务器硬盘SAS与SATA区别介绍
- android电视直播卡顿,智能电视或电视盒子经常会在看直播的时候卡顿
热门文章
- linux 开启新端口号,linux 查看端口,开启新端口
- 【项目管理】项目问题应对思路
- 信息系统项目管理师考试时间安排
- 《系统集成项目管理工程师》必背100个知识点-59项目总结会议
- Leaflet中使用Leaflet.draw插件实现图形交互绘制和编辑(修改图形坐标点)
- MyBatis+Mysql实现从记录表中统计符合条件的人数
- SpringBoot+ElementUI实现多选设置一月中指定几天的属性,SpringBoot中通过反射实现
- Vue中进行断点调试的两种方式(使用外部浏览器和VsCode的 Debug for Chrome插件)
- Redis的持久化机制-RDB方式和AOF方式
- Winform中使用zxing实现二维码生成(附dll下载)