BG
cf昨晚竟然都卡成jzoj了=_=;打到一半变成unrated的div2场了没啥好说的,万年在2k下摸爬滚打。。
A Lunar New Year and Cross Counting
没啥好说的,直接n^2模拟。
一开始没判中间也要是X,qaq
B Lunar New Year and Food Ordering
我居然认为B比C要难。。讲一下我的sb做法吧
我们对食物排序建线段树,统计s1[x]和s2[x]分别表示食物的数量和、价格的和
然后单点修改、区间变0、区间查询、线段树上二分就可以了(数据结构学傻.jpg
第一次交没开LL
C Lunar New Year and Number Division
猜一个结论,直接排序然后最大匹配最小就可以了
证明的话就是,首先肯定是两两配一组,用四个数字的情况讨论一下做差就可以知道了。。
D Lunar New Year and a Wander
第一眼以为是noipd2t1,理解一波发现直接优先队列就可以了啊
E Lunar New Year and Red Envelopes
std怎么可以这么短啊。。stl还能这样用.jpg
我们把线段拆成+1和-1用扫描线维护每个位置能取的最大红包,然后f[i,j]表示位置i阻止了j次的答案,往后转移比较显然
F Lunar New Year and a Recursive Sequence
这题就没写代码了
由乘法的性质可知最终的答案肯定是 f k f_k fk作为底数,指数是关于 b i {b_i} bi的线性组合。
那么我们算指数用矩阵快速幂,最后实际上要求解形如 x a ≡ b ( m o d 998244353 ) x^a\equiv b \pmod {998244353} xa≡b(mod998244353)这样一个方程的任意一解
注意到 998244353 998244353 998244353的特殊性,我们求出原根3然后转化成 3 k a ≡ 3 c ( m o d 998244353 ) 3^{ka}\equiv 3^{c}\pmod {998244353} 3ka≡3c(mod998244353)这样的形式
于是就变成了求解 k a ≡ c ( m o d 998244352 ) ka\equiv c\pmod{998244352} ka≡c(mod998244352)这样可以exgcd解决的问题,对于指数上的k我们用BSGS搞定
然后就没了
总结一波:手速很重要,还得好好读题。。两个小时的场能有多难?要争取1A