Windy Simple Round2 赛后总结帖

学术版

我是本场比赛 A,D 两题的出题人。由于种种原因带给大家的体验可能不是很好,先向各位参赛者说一声抱歉。 经参赛者反馈,题目 idea 有和现有题目相似的情况。其中 A 题与 [UVA10256](https://www.luogu.com.cn/problem/UVA10256) 相似,D 题与刚刚结束的k舔的比赛中 [P6694](https://www.luogu.com.cn/problem/P6694) 相似。不过题意有很大不同,做法相去甚远没什么相似点。 A 题的难度没有控制好,并且有些卡精度,导致 335 份提交中只有 6 人通过,卡~~劝退~~了很多人。 这个 A 题变成了变态卡精度题,这是我意料之外的……以下是一些分析:(出题人在线教你卡精度) - 以下分析基于你打了正解但是被卡了精度。如果你打的是奇怪的随机化那啥也救不了。 - 本题的数据范围有效数字只有 6 位,而 double 的尾数部分是 52bits,$2^{52} ≈4×10^{15} > 10^{12}$,故可以使用 double 计算,不存在计算精度误差过大的情况。标程和验题人的程序也没有被卡。 - 但是很多选手选择了 $ax-y=c$ 的形式也就是**斜截式**的变形表示直线。这种做法非常死亡:它会导致输出的 $a$ 达到 12 位有效数字,到了 SPJ 那里还要再乘一次变成 18 位,超出了 double 的表示范围,会造成误差。 - 所以好几个用斜截式的选手都被卡惨了……其实为什么输出格式用这种形式也是因为这个原因,斜截式确实不是很好的做法。但是其实我没想刻意卡这个,算是我疏忽了,谢罪。 - 另外,题目下已经给出了常见的避免精度误差的方法,但是好像有人不看……。只输出 2 位小数,样例的输出高达 $10^8$ 级别,不用 eps,这样的提交都是有的。所以最好认真看题。 - 总之,对于这道题最有效的避免精度误差的方法——别用斜截式。然后就是注意输出到小数点后 6 位以上和用 eps。根据有效数字位数可以算出 eps 开在 $(2.5×10^{-10},1×10^{-6})$ 范围内。这些都是要算出来的,不是瞎猜的。 - 所以~~除了喷出题人之外~~,还要找找自己被卡的原因啊。 - [附上 A 题 std 代码。](https://www.luogu.com.cn/paste/mqnukh1e) ~~D 是水题怎么没人切啊~~ 顺便 D 题的 std 曾经写的是 $O(m^3)$ 的,被神 [MatKave](https://www.luogu.com.cn/user/344628) 爆踩到 $O(m^2)$,%%% 这场比赛也让各位出题人认识到了不足之处,我们会努力改进,希望 WdOI 和 WdSR 系列比赛会变得更好。
by 鏡音リン @ 2020-08-01 19:01:44


B题数据已加强
by CSP_Sept @ 2020-08-01 19:01:53


前排,御坂如此回答。
by 御坂10031号 @ 2020-08-01 19:02:08


@[chen_zhe](/user/8457) 求置顶
by 囧仙 @ 2020-08-01 19:02:10


hp
by Surelysuper @ 2020-08-01 19:02:10


qp
by ubsan @ 2020-08-01 19:02:21


qp
by Trinitrotoluene @ 2020-08-01 19:02:24


qp
by Hauynite @ 2020-08-01 19:02:38


等下 A有七个人过了 最后一个是最后一分钟过的没统计到(
by 鏡音リン @ 2020-08-01 19:02:57



by DeepSkyBlue__ @ 2020-08-01 19:02:59


| 下一页