zoukankan      html  css  js  c++  java
  • PKUWC2020游记与题面整理

    游记

    很久之前

    jxp玄学卡线THU和PKU都没有进,默哀。
    我校似乎只剩hyw神仙和我了啊……希望好运

    12.19

    晚上到了北京,住在熟悉的地方——中关新园。我大概在这里考过PKUSC2018和PKUSC2019.
    来的飞机上还在疯狂颓废,吃枣药丸。
    感觉yyf巨佬出的树剖交互好题非常有趣,于是去写了一下。

    12.20

    上午疯狂颓废之余写了一道简单的DP题, 发现不会,看了题解。来PKUWC不会DP,吃枣药丸。
    下午疯狂颓废之余写了一遍多项式exp板子,犯了一两个错误,吃枣药丸。

    12.21 Day1

    上午开幕式。
    下午机试。
    打开T1顿时慌了,看上去不会做?瞎转化了一波,莫名其妙把题意转化错了,于是前一个小时就在自闭中度过了。
    到了1.5h的时候还不会做,心态渐崩,决定敲个暴力。敲完了,我怎么过不了样例???结果发现居然转化错题意了……gg
    没啥继续想下去的心态,于是(21)分走人了,T2没思路,于是去看T3.
    显然可以反演一下,然后枚举约数,如果(m=1)的话就是单点加单点查询?(m)比较大似乎可以按被修改的次数分块?决定先去写一发(m=1)
    写完了,诶我怎么又过不了样例??自闭了好久发现自己又想错了(想得过于简单了),反演枚举约数之后还得倍数加倍数求和。。。
    gg,那不爆炸,最后两次Dirichlet前缀和(43)分走人了
    还剩2h15min, 觉得自己已经基本凉了,可是除了刚T2之外别无选择
    第一反应是设(f[l][r][i][k])表示([l,r])这个区间(i)轮之后还剩(k)个集合完全在其内部的概率,显然这个只和区间长度有关,(O(n^3))
    还剩1h30min, 还能优化吗……
    最后狗急跳墙一般,用了一些我自己都不知道为什么对的玄学方法搞成了(O(n^2))
    这时还剩1h, 又尝试用分治NTT之类的水Subtask6, 搞了半小时发现基本不可搞,只好放弃。
    总得分: (21+50+43=114)

    不知何时养成了出考场堵紧双耳不和别人交流的习惯,可是还是从耳缝里冒进几句话,大概都在说T2的50分好水之类的。嗯,看来是凉了。
    问了下,似乎SD的人都有点发挥失误,hyw (21+29+43), wzm (21+18+43), yamf考崩T2只有(1)分,默哀。
    后来发现T2我的思路完全是错的,怪不得别人都觉得水我却费了九牛二虎之力。
    依然是每次考完试都有的失落……我什么时候才能变强一点点呢……什么时候能不往错误的方向里走到黑才知道自己从最一开始就已经错了……

    12.22 Day2

    上午面试。
    面试老师1: “请介绍一下你自己?有什么兴趣爱好?参加过什么OI比赛?”
    我: “……三次NOIPtg省一,NOI Cu, 2018ICPC青岛赛区Cu, 2019ICPC上海赛区Au”
    老师: “哈哈哈你拿了那么长时间铜牌终于拿到金牌了” (达成目标: 被面试老师无情嘲讽)(想什么呢,ACM Au还不都是队友带?orz hyw)
    面试老师2: “请介绍一下你自己?有什么兴趣爱好?你知道哥德巴赫猜想吗?你知道它为什么难吗?”
    我: “……”
    面试老师3: “给你2min时间跟我说下你有什么优点。开始计时了,快点快点快点快点,快快快!”
    我: 顿时吓傻了,坐了2min一个字没说
    老师忍不住了: “怎么不说啊?你文化课成绩怎么样?应该很好吧?”
    我: “嗯” (开始虚)
    老师: “别光嗯,给我个具体的数,多少人里排第几?”
    woc吓傻了!!!还真问文化课成绩……我级部后一半说出来不是得凉?
    我: “初中的时候一直是600人里的前6”(只看期末的话这倒不假), “高中的时候……也排得比较靠前” (跪求别问我高中排第几!!)
    老师: “哦好,(又问了一些别的问题)时间到了你回去吧”
    orz!!!!!!!!! 吓死了,还好没问高中排第几,捡回一条命!!

    下午机试。
    看了一遍题,没有秒掉任何一道,但我却有种感觉就是今天要全场AK,于是照着AK的策略去打
    T1题意好复杂,T2看似比较有趣,先看T2吧
    这显然是棵树对吧,然后随机情况下树高是(O(log n)), 从(l)开始暴力爬树高,遇到右儿子取个反处理一下就好,不过取反那里似乎有一些细节
    想了想开始写,大概1h的时候拿到了(65)
    继续想正解,感觉可以把暴力跳树高改成预处理一些奇怪的东西,发现是和(min(r,R))有关,于是分别处理两个部分,分界点是LCA
    写完过了样例,喜提(0)分。查错半小时失败,于是打了个对拍和(65)分程序拍,结果发现果然又是取反那一部分细节出错了……qswl
    交上去终于得到了(100)分,已经过了2h35min, 这已经远远落后于我的预想,心态大崩
    难不成要被今天断送了……赶紧开T1
    读懂了之后发现是个括号匹配,相当于最少改变多少个括号变成合法括号串,一个柿子大概就写完了(似乎还要个RMQ)
    交上去又WA了,算了半天发现自己柿子又推错了……所以实际上很多时候代码写不对并不是代码能力的问题,细节想假毁一生
    3h45min的时候,终于A掉了T1
    只差T3了,冲冲冲!!!
    瞪了15min发现显然无穷大边只能割两条,于是两个点集分别是一段连续区间(这速度我也真是无fuck说)
    然后先写了个暴力统计每个区间的权值,然后(O(n^2))求所有的答案,几分钟写完了交上去,我特么怎么又WA0了??!
    查查查,这哪里有错?数组开小?模数打错?细节问题???查不出来改暴力,把两部分都改成了(O(n^4))的暴力,感觉还不够暴力又改成了最最最暴力的暴力,可是始终连第一个Subtask都通不过!
    时间仅剩30min, 面对一道我会的水题,我玄学错误只能拿(0)分,我能怎么办!!我到底犯了什么错!!我!!到底错在哪??!!
    ……
    讲个笑话:我读入点之后对(n)取模来把([1,n])变成([0,n-1])

    scanf("%d%d",&u,&v); v%=n;
    

    ……
    无fuck说
    还剩15min, 改过来,(19)分,又改成最初写的那个,(42)
    改差分卡常就大功告成了!!!冲冲冲!!!还有13min来得及!!!
    改完差分提交,然后去上了个厕所,“做好了回来卡常的准备”
    上完回来,发现满屏蓝色,最大的点(2400 ext{ms})
    看了一眼时钟,刚刚好是17:50:00. 我以一种非常不体面的方式,在最后时刻,惊险地,AK了。(获得成就: 达到全场平均分)
    总得分: (21+50+43+100+100+100=414)
    内心异常平静,丝毫没有什么喜悦之情,内心却充满了速度极度落后带来的失落,开始脑补场面
    2h的时候, 人均切前两题,我却面对着T2的(0)分不知所措,惊慌地打对拍
    3h的时候, 神仙们已经AK了,而我还在面对着T1焦头烂额……
    4h的时候, 大批人员提前离场,没离场的人也都AK了,我还刚刚拍着脑门意识到:哦,这每个连通块是个连续区间啊!
    4h40min, 我捶胸顿足,浑身颤抖,右边的镇海老哥大概会想: 这是哪来的肮脏下流又菜的sb?
    4h50min, 我好不容易挣扎着从泥潭里走了出来,右边的镇海老哥悠闲地玩着鼠标,仿佛在不屑地嘲讽着我这个菜鸡。
    出了考场,只能面对早已离场的人们的无情嘲讽,像去年一样强忍着泪水垂头丧气溜回酒店
    等回了学校, jxp会问我要题,并用我六分之一的时间把它们秒掉;ckw&zyb要是看了题大概又会说: “这day1打到(243)不难吧?day2为啥3h AK不了?”
    ……

    最后10min过去了,考试结束,懒得堵耳了,直接穿过人群走出考场,发现以上似乎并不真实
    首先并没有大批人员提前离场
    遇到hyw问我切了几道,我有足够的理由相信她AK了于是说“我差一点没命啊”,没想到她又笑着问我切了几道,我吓懵了,没经过大脑说了一句“你没有AK吗?”她竟脸色突变,很吃惊地问我“你AK了?”我察觉到事情不对,问“蛤你哪个题没过?”hyw:“T2T3都没过,(100+32+68=200)”……
    然后又在门口遇到了不少人,印象中的画面就是: XXX出来,hyw问多少分,答二百多,hyw指着我说“他AK了”,然后又来下一个人,hyw继续问,直到xlh出来说自己AK了才停下,搞得我非常懵逼地在门口站了两分钟
    yamf (200)零几,ldx (268), xlhAK(但他Day1似乎(82)?)
    吓傻了……这题是被集体降智了吗……好多水平远在我之上的人都考砸了……难受……
    OI这个东西……真的太靠运气了啊……

    晚上和hyw一起被yhy学长带着玩了一圈PKU,了解了一下他们现在的学习生活
    上大学真累啊……不过我连大学都没得上啊……
    另外还听说THU考了若干大数据结构,还好没去THU……不然命都没了……

    12.23

    上午颓废。
    下午颁奖。
    PKU大概是摆明了不喜欢高二,yamf只拿了二等。SD好像还有女生wyx拿了二等。一等发得挺多,ldx一等,hyw和wzm一等,替他们感到高兴。(srO wzm Orzzz 被初中学弟锤爆的恐惧!)
    热闹是他们的,我什么都没有。
    晚上回青岛,准备上文化课——新一轮的自闭。
    我这么菜,大概只能回去学文化课了吧。

    一些感想

    忽略结果来看,这次比赛还是暴露了我的各种弱点,并且我感觉到自己的水平再提升已经相当困难了。
    现在政策很不乐观,以后只能文化课OI两手准备,今年争取进入省队拿到Ag, 然后很可能就得被迫离开OI这个四年以来一直给我欣喜给我动力给我失落给我打击的良师益友了。
    希望能化压力为动力,珍惜最后的时间,放手一搏吧。
    (本来这后面还写了个感谢,想了想还是删掉了……这种东西是不是退役的时候写比较好啊,现在就默认自己要退役了未免过分了点)

    题面整理

    Day1 T1

    给定一个(1..n)的排列(p), 定义(L(p))为字典序不超过(p)的所有(1..n)的排列按字典序从小到大依次连接而成的序列。求(L(p))本质不同的子序列个数,对(998244353)取模。
    数据范围: (1le nle 50)
    Subtask1 ((21)pts): (nle 8)
    Subtask2 ((47)pts): (forall i, P_i=n-i+1)
    Subtask3 ((32)pts): 无特殊限制

    Day1 T2

    (n​)个数(a_i​), 初始每个数构成一个集合。每次随机选两个集合合并成同一集合。定义一个局面的权值为当前所有集合最大值与最小值之差的平方和。定义(f(k)​)为合并到还剩下(k​)个集合时局面价值的期望。给定(L,R​), 求(sum^R_{i=L}f(k)^{97376})(998244353)取模的值。
    数据范围: (1le nle 2 imes 10^5, 0le a_ilt 998244353)
    Subtask1 ((1)pts): (L=R=1)
    Subtask2 ((9)pts): (nle 7)
    Subtask3 ((8)pts): (L=R=n-1)
    Subtask4 ((11)pts): (nle 100)
    Subtask5 ((21)pts): (nle 2000)
    Subtask6 ((13)pts): (L=R)
    Subtask7 ((37)pts): 无特殊限制

    Day1 T3

    有一个(n imes m)的矩阵,初始时均为(0). 首先有(q_1)次修改操作, 每次给定(s,l,r,x), 表示将所有满足(gcd(i,s)=1)(lle jle r)的位置((i,j))的值加上(x). 修改结束后有(q_2)次询问操作, 每次给定(s,l,r,x), 求满足(gcd(i,s)=1)(lle jle r)的位置((i,j))的权值和对(998244353)取模后的值。
    数据范围: (n,m,q_1le 5 imes 10^4,q_2le 10^5)
    Subtask1 ((6)pts): (n,m,q_1,q_2le 100)
    Subtask2 ((13)pts): (n,m,q_1,q_2le 5000)
    Subtask3 ((24)pts): (m=1)
    Subtask4 ((27)pts): (n,m,q_1le 3 imes 10^4)
    Subtask5 ((30)pts): 无特殊限制

    Day2 T1

    在一个双人对战游戏中,己方有两种兵,记作0,1, 对方有两种兵,记作A,B. 己方的兵是有顺序的,以一个01序列的形式给出。有(q)次询问,每次给出(x)(k), 己方可以进行(k)次攻击,第(i)次攻击可以指定对方的任意一个兵,使用己方第(i)个兵攻打之(若对方已经没有兵,则己方赢得游戏,否则必须进行攻击)。A型兵受到1型兵的攻击会消失,受到0型兵的攻击无效。B型兵受到任何兵攻击都会变成A型兵。现在已知对方有(x)A型兵,求在保证己方能赢得游戏(消灭对方所有兵)的情况下对方最多有多少个B型兵。若己方不可能赢得游戏,输出(-1).
    数据范围: (n,qle 4 imes 10^5,x,kle n)
    Subtask1 ((8)pts): (n,qle 100)
    Subtask2 ((12)pts): (n,qle 5000)
    Subtask3 ((12)pts): (x=0)
    Subtask4 (?pts): (k=n)
    Subtask5 (?pts): (n,qle 10^5)
    Subtask6 (?pts): 无特殊限制

    Day2 T2

    给定序列(a[0..n])与排列(p[1..n]), 将(a)序列按顺序从上到下写下来,相邻两数之间用长短不一的除法分数线连接(分数线短的先计算),第(i)条分数线长度是(p_i). 有(q)次询问,每次给出(l,r), 求(a[l-1..r])(p[l..r])构成的分数的值对(998244353)取模的结果。
    数据范围: (n,qle 5 imes 10^5,1le a_ilt 998244353)
    Subtask1 ((12)pts): (n,qle 100)
    Subtask2 ((20)pts): (n,qle 5000)
    Subtask3 ((33)pts): 保证数据随机
    Subtask4 ((15)pts): (n,qle 2 imes 10^5)
    Subtask5 ((20)pts): 无特殊限制

    Day2 T3

    给定一张(n)个点(m)条边的有边权无向图,边权为(w_ile 10^4), 点从(1)(n)标号。除给定边之外,对于每个(i)还在(i)(imod n +1)之间连了边权为(10^9)的边。求该图所有无序且两点不同的点对间最小割之和对(998244353)取模的结果。
    数据范围: (nle 7 imes 10^3, mle 10^5,1le w_ile 10^4), 图可能有重边,保证无自环。
    注: 出题人原定数据范围为(n,mle 3 imes 10^4).
    Subtask1 ((19)pts): (nle 80,mle 200)
    Subtask2 ((23)pts): (nle 300,mle 1000)
    Subtask3 ((26)pts): (nle 1000)
    Subtask4 ((32)pts): 无特殊限制

  • 相关阅读:
    SQL Server 2005高级程序设计
    SQL语言艺术
    无益的程序
    Django Ajax动态图形监控
    C/C++ Qt 基本文件读写方法
    Django 实现统计网站访问状态
    Python 实现 WebSocket 通信
    Django Admin后台定制简单监控页
    Django Ajax 实现Web命令行执行
    C/C++ Qt QThread 线程组件应用
  • 原文地址:https://www.cnblogs.com/suncongbo/p/12112435.html
Copyright © 2011-2022 走看看