标程在哪呀QWQ
Xiejiadong edited 6 年前
A题由于出题人和验题人的疏忽,题面对于 feedback 的 0/1 书写有误,给选手造成不愉快的比赛体验。在此表示抱歉。
这是一场“签到”竞速赛。
采用 ICPC 赛制的好处是,想到什么出什么,完全不用考虑区分度。
采用 ICPC 赛制的好处是,题目想怎么排序怎么排序,完全不用考虑难度。
没想到什么坏处,大概率会继续沿用。
这场月赛。差点摸着摸着就三月了。
# | Tag | Idea | Developer | Tester |
---|---|---|---|---|
A | 构造 几何 | Kilo_5723 | Kilo_5723 | Weaver_zhu |
B | 抽屉原理 | Kilo_5723 Xiejiadong | Kilo_5723 | ultmaster |
C | 构造 | Xiejiadong | Xiejiadong | Special Judge |
D | 数学 | Xiejiadong | Xiejiadong | Weaver_zhu ultmaster |
E | 二分 拓扑排序 最长路 | Xiejiadong | Xiejiadong | ultmaster Kilo_5723 |
F | 数学 滑动窗口 | Xiejiadong | Xiejiadong | ultmaster Kilo_5723 |
如果知道球上两点,就能知道球心在两点连成线段的垂直平分面上。
以
因此,只要求出两个交点的中点坐标即可。交点坐标可能含有小数,但是依旧可以通过二分法求出半轴上第一个不在球内,或最后一个在球内的点的坐标。对正负半轴各求一次,根据对称性,所得两点的中点坐标应该与真实交点中点坐标相同,因此可以在约
同样地,可以用此方法求出球心在
有一个常见错误是:二分交点从
设
例如,对于
要使
同时,因为抽屉原理,我们最多只要处理
Xiejiadong:一开始想了一道裸的抽屉原理,甚至还要SPJ,被毙了。
这是一道可以各凭所长过的题目,感觉允许操作次数也挺多的。
提供一种比较暴力的还原的思路:
我们通过针对位置
这四种操作可以用暴力跑出来,当然也可以纯手工推,因为并不需要很多的操作次数,次数太多了也没法满足操作次数的上限。
也就是说,我们只要找到一个数现在在的位置和最终的目标位置,然后用类似于“车站调度”的方式,沿路一次交换即可。
四种交换方式所需要的最少操作次数是不同的,我们可以设计一种比较优秀的走法来减少更多的操作次数。
这题如果有其他好的解法,欢迎在评论区讨论。
ultmaster:我觉得正常的选手,读完这道题目就溜了。不会想写的。
签到题。
如果十进制数
而显然
当然它不甘为一道纯粹的签到,所以会计算过程直接 long long 会溢出。要注意处理的一些 tigs ,比如,判断的乘法变除法、加分变减法,均可以避免这个问题。
Weaver_zhu:用 double 瞎判会不会溢出,结果精度炸了。改成 long double 就过了。
自从在 AGC06 做了“中位数金字塔”以后就一直想出一道关于中位数的题目,于是这题就出来了。
考虑二分答案,我们需要验证路径最大的中位数是否
我们把所有的点权做
根据题面路径中位数的定义,我们可以发现,如果这条路径的中位数
而我们现在需要知道的问题是路径最大的中位数是否
跑一遍最长路就好了。而对于 DAG ,最长路只要 dp 一下,复杂度是保证
我们考虑对方差的式子做变换:
显然
要方差尽可能的小,肯定会选择大小相对变化不大的
那么,我们直接维护连续
考虑到会超过long long的问题,所以数据范围比较小。
而
时间复杂度
Weaver_zhu:这个是概率论的常规题。是不是送了一题啊。
ultmaster:这一眼滑动窗口。
调了两个半小时终于把C题过了……
我看了一下代码,用引用会出错的原因应该是 work1 和 work2 中对 pos[] 的修改影响到了参数吧,const 引用不代表值不会变
比如说
#include <iostream>
int count;
void f1(int x) { std::cout << x << std::endl; ++count; }
void f2(const int& x) { f1(x); f1(x); f1(x); }
int main() { f2(count); }
结果是输出
0
1
2
const 引用只是代表“自己”不能修改它的值,而不是“别人”不能修改它的值
AC那道题目以后可以看到所有的提交代码。std不直接公开的。