kick start

题目在这里:https://codingcompetitions.withgoogle.com/kickstart/round/0000000000050e01

代码在这里:https://github.com/dezhonger/kick-start/tree/master/20190324

A : T r a i n i n g A: Training A:Training

题 意 : 一 个 大 小 为 n 个 数 组 选 出 m 个 数 , 可 以 进 行 的 操 作 为 给 一 个 数 加 一 , 为 了 可 以 选 出 m 个 相 等 的 数 , 求 需 要 加 的 最 小 值 是 多 少 ? 题意:一个大小为n个数组选出m个数,可以进行的操作为给一个数加一,为了可以选出m个相等的数,求需要加的最小值是多少? nmm

S o l u t i o n : 排 序 + 前 缀 和 , 枚 举 。 Solution: 排序+前缀和,枚举。 Solution:+

复 杂 度 为 O ( N ) 复杂度为O(N) O(N)

B : C o n t e n t i o n B: Contention B:Contention

一 个 长 度 为 N 的 座 位 , N 个 查 询 , 每 次 要 得 到 [ L , R ] 的 座 位 ( 如 果 其 中 有 些 位 置 已 经 被 之 前 的 拿 走 了 , 那 么 就 只 能 拿 剩 余 的 位 置 ) , 怎 么 安 排 顺 序 使 得 拿 到 最 小 的 位 置 的 数 量 最 大 。 一个长度为N的座位,N个查询,每次要得到[L, R]的座位(如果其中有些位置已经被之前的拿走了,那么就只能拿剩余的位置),怎么安排顺序使得拿到最小的位置的数量最大。 NN[L,R]()使

S o l u t i o n : 不 会 做 。 Solution: 不会做。 Solution:

官 方 正 解 似 乎 是 贪 心 + 线 段 树 , 但 是 感 觉 不 对 , 看 别 人 的 做 法 都 是 二 分 。 。 。 官方正解似乎是贪心+线段树,但是感觉不对,看别人的做法都是二分。。。 +线

C : P a r c e l s C:Parcels C:Parcels

一 个 N ∗ M 的 01 矩 阵 , 可 以 选 择 其 中 一 个 的 0 变 为 1 ( 也 可 以 不 选 ) , 求 所 有 为 0 的 点 到 1 的 曼 哈 顿 距 离 最 大 的 值 最 小 为 多 少 ? 一个N*M的01矩阵,可以选择其中一个的0变为1(也可以不选),求所有为0的点到1的曼哈顿距离最大的值最小为多少? NM010101

S o l u t i o n : Solution: Solution:

先 b f s 算 出 最 大 值 , 然 后 二 分 。 先bfs算出最大值,然后二分。 bfs

假 设 距 离 为 k , 到 点 P ( x , y ) 距 离 为 k 的 点 为 一 个 旋 转 π / 4 的 正 方 形 , 计 算 出 四 条 直 线 的 表 达 式 。 假设距离为k,到点P(x, y)距离为k的点为一个旋转π/4的正方形,计算出四条直线的表达式。 kP(x,y)kπ/4线

枚 举 所 有 距 离 大 于 k 的 点 , 求 出 各 个 正 方 形 的 交 集 的 表 达 式 , 实 际 上 就 是 求 点 P ( x , y ) 的 表 达 式 x + y 的 范 围 和 x − y 的 范 围 , 最 后 判 断 矩 阵 中 是 否 有 元 素 在 这 个 结 果 里 即 可 。 枚举所有距离大于k的点,求出各个正方形的交集的表达式,实际上就是求点P(x,y)的表达式x+y的范围和x-y的范围,最后判断矩阵中是否有元素在这个结果里即可。 kP(x,y)x+yxy

复 杂 度 : N M l o g ( N + M ) 复杂度:NMlog(N+M) :NMlog(N+M)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值