contest3 CF994 div2 ooxxx? oooox? ooooo?
题意
div2 C (x)(o)
在一个平面上, 给一个水平的正方形和一个\(45^。斜\)的正方形
求是否相交(共点也算), 坐标正负\(100\)以内
div2 D (x)(o)
\(A,B\)两个人初始分别被给了一个数对, 其中有且仅有一个数相同(\([1,9]\)下同)
接下来\(A,B\)分别展示\(n,m\)个数对(\(\le 10\)个),其中包含他们初始拿到的
现在你作为观察者
- 若能推出初始数对中相同的是哪个数, 输出他
- 若\(A,B\)两个人都能推出, 但你不知道, 输出\(0\)
- 若你不能判断, 输出\(1\)
div2 E (x)(x)
给一个平面, 在\(x=100\)和\(x=-100\)的上分别给定\(n, m(\le 60)\)个敌方飞船的纵坐标
你的飞船在\(y轴(|y|\le 1e4)\)上, 敌方飞船会在同一时刻向你的飞船发出射线,你一定可以躲开, 然后让射线打到对面的敌方飞船(不能躲).
你有\(2\)艘船, 只攻击一次,问最多击落几个敌方飞船?
div2 F (?)
题解
div2 C
在格点上覆盖, 肯定不会漏
水平正方形找出\(x_{min}, x_{max}, y_{min}, y_{max}\)即可
斜的正方形找出水平对角线即可
div2 D
读懂题之后, 最暴力的模拟一边即可
分别扮演一下\(A,B\), 枚举初始数对, 看看能否推理
div2 E
- 某一排的敌方飞船能射击到的位置是关于我方飞船对称的位置
- 不难想到先枚举两排中各一个飞船, 他们的中点为一个我方飞船(至少确保一条射击路线有意义)
- 但是如果同样枚举第二队, 然后暴力处理被击中的有几个, 复杂度是\(O(n^5)\)
- (考虑过用bitset?)
实际上可以在枚举第二对的时候用一点技巧:将枚举到的每一对贡献累积到中点坐标上, 同时维护max(只有没被第一轮击中才有贡献),加上第一轮贡献就是答案
div2 F
总结
比赛完全不知道在干什么, 两个半小时写了\(A,B\), \(C,D\)都没调出来
\(B\)题没想到一定要选自己
\(C\)题坐标写反
\(D\)题没来得及打完
不够细心, 不够冷静