JXOI2018游记

愿每一个努力的少年都能追逐到属于自己的梦想。


Day 0 (4.27)


因为江科太远,于是我们决定住过去。报道的时候碰到了赣州中学黑压压一片神犇,以及我校选手全部没带现金不知道如何报道。。。
我和QYQ分到一间房,后来把XG和lornd一起叫过来了,颓了一下午斗地主。
嗯,江科的食堂真好吃,就是穿着一身蓝出入感觉有点诡异。
晚上四个人在宾馆干了一些扰民的事。。。大概21:30我妈到了南昌并且忘记带家门钥匙了,于是四个人一起出去散步并且把钥匙送到了地铁站。
走在路上,有些凉意,一个看不到月亮的夜晚,一个预测不到的明天。

Day 1 (4.28)


好像4:30就醒了??然后又睡过去了??
7:00正常起床,感觉精神还不错。
在电梯里遇到了赣州三中的uroqa和xyf。
“你们昨天有没有听到旁边KTV还是什么地方在放极乐净土,并且还唱歌唱得好响。。。”他们问我。
“嗯,好像听到了”,我说。
“嗯。”,QYQ说
“嗯。”,XG说。
QwQ

8:00进去试机,感觉没啥问题,就等新版Dev下发了。
8:25系统还登不进去,我以为开考了才能登进去,然后就去了趟洗手间。
8:27回来看到前桌的lornd已经用上了新版Dev??然后才发现旁边的人都登进去了。赶紧叫老师来搞搞搞。
8:30 Dev刚装好就发题了,一眼扫过去。。。
第一版表格的字体格式都和去年一样???(背后发凉
“九条可怜是一个*的女孩子。”
QwQ吉司机又来出题虐江西了么。。其实去年也事吉司机出的,感觉出的还蛮小清新,没什么毒瘤题,比较适合JXOI这种时间短的手速比赛。。。
T1大概是定义 F(S) F ( S ) 表示数集 S S 中的数随机打乱然后有序的概率,先给定了一个数集 A,|A|=n A , | A | = n ,让你找一个数集 B,|B|=m B , | B | = m ,并且 B B 中的数都在 [l,r] [ l , r ] 内,使得 F(AB) F ( A ∪ B ) 最大,输入 n,m,l,r,A n , m , l , r , A ,输出这个最大值,对 998244353 998244353 取模。
多组数据, n2000000,m10000000 ∑ n ≤ 2000000 , m ≤ 10000000
稍微推了一下就发现

F(S)=n!a1!a2!... F ( S ) = n ! a 1 ! a 2 ! . . .

ai a i 表示 i i S S 中的出现次数,又是一个和每种元素出现次数有关的题,让我想起了被九省联考IIIDX支配的恐惧。。。
再想一下就发现 ai ∑ a i 是定值,然后两个 ai a i 相差越大阶乘的积就越大,大概就是把 m m 分配给 ai a i 让它们相差尽可能小。。。
然后发现 m m 这么大好像不可做,下一秒就想到二分 ai a i 的最小值。。。
时间复杂度? O(m+nlog(n+m)) O ( m + n log ⁡ ( n + m ) ) ,感觉挺靠谱。
才8:50,看下一题。
T2是对于数列 l,l+1,...,r1,r l , l + 1 , . . . , r − 1 , r 的某个排列 p p ,初始每个 pi p i 都是未标记的,我们从 p1 p 1 扫到 prl+1 p r − l + 1 ,每扫到一个数 pi p i 就把所有 pi|pj p i | p j pj p j 标记,直到扫到某一个数 pk p k 之后后面的数都被标记了,那我们就记 t(p)=k t ( p ) = k ,输入 l,r l , r ,求所有排列 t(p) t ( p ) 的和,对 1000000007 1000000007 取模。
l,r10000000 l , r ≤ 10000000
一开始把 t(p) t ( p ) 看成前面不存在它的约数的数的个数,然后就开始考虑每一位在多少种排列里有贡献。。。
然后发现看错题了。
我先看到有两个特殊数据 l=1,l=2 l = 1 , l = 2 l=1 l = 1 不就是 1 1 的期望出现位置么, l=2 l = 2 不就是最后一个质数的期望出现位置么。。那么任意 l l 不就是。。。
我们定义“好数”是不存在大于 l l 的因子的数(因子不包括它自己)
那不就是最后一个好数的期望出现位置么。。。
大概前后各记一下数,假设最后一位在 i i ,可能的排列数就是 (i1m1)m!(nm)! ( i − 1 m − 1 ) m ! ( n − m ) ! ,其中 n=rl+1 n = r − l + 1 m m 是好数个数。
O(n) O ( n ) 扫,好像就没了。
竟然又切了一题。JXOI果真还是延续去年传统T2最简单,感觉这题会被全场A穿。
这个时候才9:00, 有一种好像能AK的感觉,现在开始码前两题是不可能的,看看T3。
T3就是给定 n n 个点 (i,hi) ( i , h i ) (就是对于 1..n 1.. n 每个横坐标都有一个点),并把相邻点连接,我们定义 (i,hi) ( i , h i ) 能看到 (j,hj) ( j , h j ) 要满足 ij i ≥ j 并且两点连线不经过其他点和相邻点连线。询问对于所有区间 [l,r] [ l , r ] ,假设只有 (l,hl)...(r,hr) ( l , h l ) . . . ( r , h r ) 这些点,最少需要选出多少个点使得这些点能看到 [l,r] [ l , r ] 中所有点。
n5000 n ≤ 5000 ,只需输出所有答案的异或和。
对于 70% 70 % 的数据, n500 n ≥ 500
嗯。。。枚举 l,r l , r O(n) O ( n ) 算一下,总共 O(n3) O ( n 3 ) 70分轻松拿啊。
想了一会之后发现并没有这么简单。。。对于一组 [l,r] [ l , r ] 我好像想不出什么多项式算法计算最小选的点的个数。。。
大概想法是搞成一个DAG,选出最少的点使得每个点要么被选,要么有一个有边向它的点被选,但这个DAG好像没有什么性质, ab,bc a → b , b → c 也不一定 ac a → c ,推了好久好久也没有推出什么有用的性质,每个点能看到的点也没有什么规律,一堆散点。。。
推了1h30min到10:30,唯一想出的有点价值的东西就是 O(n2) O ( n 2 ) 预处理了。。。

不行,先把前两题写完。
11:15写完两题并且拍了T2,T1过了大样例然后造了一个极限数据感觉跑的挺快就没管了。
一直想T3也没想出什么(觉得自己没想到点子上去),赶紧码完了暴力,后来还发现判斜率的时候我把分母乘过去了但没开longlong(好像NOIPday2T1也犯了这个错)。。。接着就着手写个骗分,大概就是在拓扑图上贪心选点,我的策略是如果一个点中有两个以上的后继不合法就选它。。。结果暴力能跑出来的 n20 n ≤ 20 根本拍不出错。。。

期望分 100+100+[30,70) 100 + 100 + [ 30 , 70 ) ,交卷,感觉自己T3没想到点子上去,遗憾。

出考场QYQ和bdzxt都说自己凉了,好像都是 50+30+30=110 50 + 30 + 30 = 110 大众分,XG说写了 50+20+70=140 50 + 20 + 70 = 140 ,结果不到一分钟我们就把他T3的70分算法给hack了(说不定还能骗点分)。。。
然后听说赣州中学那边好像也都是 100 100 左右,难道都没人切题的么。。。隐隐约约感觉省队线大概就 100 100 左右然后再卡卡联赛。
考完找兵哥聊了一下,并在江科食堂共进了午餐qwq。
大家的情绪好像都很紧张,因为好像分数都相差不多,一切都还未知。

后记


后来出题人jiry在qq上问江西选手做题感受,于是和他聊了下并且要到了题解。
T1我写的是正解
T2线性筛之后就可以 O(1) O ( 1 ) ,我竟然还 O(n) O ( n ) 求了。。。不过不影响复杂度
T3真没想到点子上。。。
最恐怖的是出成绩
我150,省队后面五个人分别是wzt100,赣州一中神犇80,yjw60,bdzxt80,Ebola80。
分都这么低的么,隐隐约约感觉是不是出锅了。啊。
然后计分方式也不按标准的来,要不然bdzxt可以从B队rank1翻进A队。
数据要到了但源程序还没有要到,依旧不清楚是怎么一回事。。。

其实说实话我的成绩只要进了A队就行,可QYQ却不知道是评测出锅还是写挂了只有70分,只差一点进队。整个机房都很难受。

真的会去想,为什么我们jxsdfz的学生明明实力比别人高,花的时间比别人长,却在重大比赛上频频翻车(至少noip2017和这次省选),而且基本每个人都与自己本该得到的分数相差很多,到头来却打不过暴力打稳的选手。。。
考前模拟了不下30场,各大OJ刷题无数,但这些训练是否认真对待,真正起到作用,可能是我们fzoi每一个成员去思考的

每次赛后机房里只剩下悲凉。

进了省队当然要再接再厉
翻车退役也应当满怀信心
至于高一的选手,你们还年轻,一切皆有可能,你们应当吸取我们的教训,稳中求进,别让汗水付诸东流,fzoi需要你们接力。

(作为一个即将退役的老年选手发出的感慨吧

你可能感兴趣的:(竞赛历程)