CSP 第20次认证 酱油记

2020/9/13 下午,正好大学开学报到

之前听说比赛比较简单,看前两题感觉有点简单的离谱了

读了好一会儿 T3 ,貌似就是拓扑排序,写一发90 WA on test 6,以为环没判对?看了几分钟错没看出来,之后一直惦记这个事

看到 T4 几何就想放弃,第一开始没看样例以为是直线与黑洞交的那部分换成弧即可,发现样例过不去,赶快写个点都在黑洞上的跑

T5 看起来有点不可做,稍微分析一下就发现状态只用记录当前在那个密码本,串在AC自动机的哪儿,然后每次枚举加哪个串就能过了,我记得好像 (O(n^3 m))

总害怕当时只有pre_test,去了问了下监考,提交显示的就是最终成绩吗,“也不是,你可以再交啊”

再看下 T3 发现我有一个越界的数组操作,就是不越界也可以被多组数据卡爆,加两个字符就过了

看到样例貌似是做切线,二维只有2个切点,三维就是一个圆,当场放弃高维,二维只有2个点我还能做,赶紧写了,WA好久,以为是自己acos海伦公式之类产生精度问题,最后发现不需要经过黑洞判错了,然后很快发现那种情况只用判圆心与那两个点组成的三角形的以那两个点为顶点的角是不是钝角即可,再判是不是都在黑洞上后加个判 (n=2),交上去55,之前过的一个点TLE掉了,到最后也没再卡过去

455 top 0.17% 果然野鸡比赛没人打

出来听从没见过的学长们交流一发,T4 高维其实只用考虑圆心和那两个点所在的平面,就转化成了只用距离的二维情况,想想二维我确实只用了距离,真是白给


UPD2 :去掉了 n==2 和改下算角度的,注释是改前的

ld r1=0;//ld r1=acos((u.x[1]-a[1])/f);if(u.x[0]<a[0])r1=-r1;
ld r2=acos((f*f+g*g-w*w)/2/f/g);//ld r2=acos((v.x[1]-a[1])/g);if(v.x[0]<a[0])r2=-r2;

就tm

UPD1居然是校rank1

原文地址:https://www.cnblogs.com/flukehn/p/13689341.html