Rank | Solved | A | B | C | D | E | F | G | H | I | J | K | L |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
3/114 | 6/12 | O | Ø | O | Ø | O | Ø | Ø | Ø | O | O | . | O |
O
: 当场通过
Ø
: 赛后通过
.
: 尚未通过
A Tobaku Mokushiroku Kaiji
solved by chelly
chelly's solution
签到
B Attack on Titan
upsolved by chelly
chelly's solution
C Utawarerumono
solved by Feynman1999
Feynman1999's solution
D Love Live!
upsolved by chelly
chelly's solution
E Eustia of the Tarnished Wings
solved by chelly
chelly's solution
排个序,若两个相邻的间隔大于k则ans++
F Baldr Sky
upsolved by chelly
chelly's solution
G Kimi to Kanojo to Kanojo no Koi
upsolved by ch
ch's solution
H One Piece
upsolved by chelly
chelly's solution
I Steins;Gate
solved by chelly
chelly's solution
如果题目里的*变成+就好了,我们就可以卷积的
于是我们希望对a取对数,就可以把乘法变成加法了,我们可以取质数P的原根g为底的对数
那么每个([1,P-1])的数字x都有一个([0,P-2])的i相对应,即(x=g^i)
所以我们可以先统计原来序列模P的结果分别有多少个,然后把x的个数映射到i的个数,然后FFT卷积,再把结果从i映射回x即可
注意0的情况要特殊考虑
J Princess Principal
solved by ch&chelly
chelly's solution
先做一次括号匹配,给匹配上的左括号和有括号打上标记,标记就是对方的下标
考虑一个询问[l,r],如何才合法呢?
合法当且仅当里面的所有括号都是匹配上的,即每个位置的标记数字都是[l,r]之间
那样我们只需要判断[l,r]中的min是否<l,max是否>r即可
这个只需要两次rmq
K Tengen Toppa Gurren Lagann
unsolved
L New Game!
solved by chelly
chelly's solution
暴力算出每两个圆之间的距离,算出两条线段到每个圆的距离,算出两条线段的距离
然后跑最短路即可
Replay
本场由chelly、ch、Feynman1999线下打的。
开场chelly签了两个题,然后Feynman1999提出了C题的解法,并上机coding。与此同时ch告诉了chelly J题的做法,chelly觉得OK,准备上机敲。Feynman1999的代码出了点问题,于是换chelly上去敲J题,成功1A拿下一血。之后Feynman1999继续写C题,ch发现了G题构造题,开始攻G,chelly则开此时过的人数比较多的L题。不久之后Feynman1999交了C题,1A。泥翔找回了自我。之后chelly上机敲了L题的最短路,1A。ch的G题有了一些靠谱的构造方法,但经过提交一直都是WA。chelly浏览了一遍题,看到了D题,觉得D题就是个启发式合并+01Trie。思考了之后,chelly决定为每个集合定一个父亲,并用01Trie维护从父亲下去的链,然后开始码码码……但是经过长时间的调试之后,chelly发现样例就把自己的做法×掉了,chelly发现合并两个集合的时候,其中一个点不一定是根……然后chelly就放弃了D。ch的G题也一直WA。赛后得知ch就差一手4的构造不然就能过了。离比赛还有1h,chelly发现I题过的人数比较多,并想到了原根的做法,然后开始码码码,在比赛结束前10多分钟1A,绝杀了比赛。