第三周
T1—1683. 困牛放牧
1 | Farmer John 的三头获奖奶牛 Bessie、Elsie 和 Mildred,总是会迷路走到农场上遥远的地方去! |
简单的贪心题,可以大概猜出来。
1 |
|
T2—1470. 水桶传递队列
1 | 农场上起火了,奶牛们正在紧急赶去灭火! |
题解一:标准的BFS模板题。复习一下。
1 |
|
题解二:简单的数学逻辑题。参考自大佬。两个速度差不多。
1 |
|
T3—1761. 阻挡广告牌
1 | 在漫长的产奶期间,奶牛贝茜喜欢透过窗户盯着马路对面的两个巨大的矩形广告牌,上面写着“农夫亚历克斯的惊人开胃苜蓿”和“农夫格雷格的大粒谷物”。 |
考察计算几何。
求矩形交集。两个矩形的交集一定是一个矩形。
可以这样做:
先求两个矩形的横轴区间的重叠部分,再求它们的纵轴区间的重叠部分,乘起来就是交集的面积。
需要用到两个线段求交集的公式:
1 |
|
T4—1749. 阻挡广告牌 II
1 | 奶牛贝茜曾经从农场中向外看去,可以看到两个刊登着美味的牛饲料广告的广告牌,这令她非常满意。 |
分类讨论一下。
第一种情况,牛饲料广告的横向边完全覆盖割草机的横向边而且牛饲料的纵向边不能被割草机完全覆盖,纵向边是完全对称的,这种情况防水布的面积就是重叠部分的面积;
其余两种情况,防水布的面积就是割草机的面积。
1 |
|
T5—1737. 传送
1 | Farmer John 最讨厌的农活是运输牛粪。 |
水题,分类讨论。
1 |
|
T6—1725. 组队井字游戏
1 | Farmer John 有 26 头奶牛,恰好她们名字都以不同的字母开头,所以 Farmer John 用每头奶牛的名字的首字母来指代她——一个 A…Z 之间的字母。 |
我的写法比较麻烦。手动去重。
注意:C++中的unordered_map和unordered_set不能直接以pair作为键名。
对于pair和自定义的结构需要作为键的话,需要自己实现哈希函数。
1 |
|
简便写法,y总。用set去重,不用手动去重。
1 |
|