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)题没来得及打完

不够细心, 不够冷静

原文地址:https://www.cnblogs.com/Kuonji/p/10347370.html