UVa 1312 - Cricket Field
链接
题意
给出矩形中的\(n\)个点,输出举行中最大的不包含点的正方形。
思路
枚举上下边界,扫描出左右边界的最大值。
代码
1 |
|
给出矩形中的\(n\)个点,输出举行中最大的不包含点的正方形。
枚举上下边界,扫描出左右边界的最大值。
1 | #include <cstdio> |
给出一个由'a'和'b'组成的字符串及八种变化方式,输出变化\(s\)次之后的字符串的最小字典序形式。
长度最大为15,可以模拟出所有字符串,找出周期。
1 | #include <cstdio> |
给出一个\(0\)到\(n-1\)的排列,若其中没有子数列为等差数列,输出"yes",否则,输出"no"。
记录每个数字出现的位置,枚举公差验证。
1 | #include <cstdio> |
给出\(n\)堵墙,用激光枪可以打穿一条直线上所有墙,给出所在的位置,输出最多一发打穿的墙的个数。
预处理出每堵墙的射击范围,然后用扫描线求最大值。这道题貌似卡精度,题目中横纵坐标是等价的,求角度时调换参数就过不了了,略坑。
1 | #include <cstdio> |
有\(n\)个人要过桥,只有一盏灯,每个人过桥的速度不同,每次最多过两个。输出最短过桥时间和方案。
来回送等的人一定选用时最少的,有两种方案:1、让最快的两个人先到对岸,然后一个送灯回来,再让两个慢的过去,另一个快的再送灯回来;2、让最快的送一个人过去再回来。每次选择两种方案中耗时较少的一个执行。
1 | #include <cstdio> |
传送门
处理器要处理\(n\)个任务,每个任务有开始时间\(r_i\),截止时间\(d_i\),工作量\(w_i\)三个参数,任务必须在截止时间之前完成,输出处理器完成所有任务的最大单位时间工作量的最小值。
最大值的最小值问题,二分出答案,然后验证是否可行。验证时优先处理结束时间早的任务。
1 | #include <cstdio> |
给出\(k\)个文件,每个文件由一些碎片组成,给出每个碎片所在的内存地址,输出将文件按照顺序连续存放的移动方法。
首先处理所有空地址,将应该放过来的碎片放好,然后放置错位的放到内存结尾,继续填补空缺。
1 | #include <cstdio> |
给出一个由'0', '1', '?'组成的字符串,其中'?'既可以当做'0',也可以当做'1'。输出最短的最长连续相同的字符长度。
预处理出每一段的字符和长度,然后对于'?',与前一段和后一段字符是否相同进行分类讨论。有个trick是当'?'的长度为1,且前后字符不同时要根据前后两段的长度进行判断。
1 | #include <cstdio> |
给出5种操作,给出\(n\)个初始数字,及\(n\)个结果。输出能使所有给定初始数字转化为给定结果的操作,多解输出字典序最小的解,忽略10次以上的操作序列。
bfs搜出第一个数字的操作序列,然后验证其他数字是否满足。
1 | #include <cstdio> |
给出一个三角形,输出由“-”组成的最大的三角形的面积。
区分奇偶进行记忆化搜索。
1 | #include <cstdio> |