ZROI 19.07.31 AB班ACM

写在前面:非常感谢cjc和djh两位神仙带我,非常感谢他们给了我一次躺赢的机会。

虽然我被硬点成了代码手,但我写的基本每次都有一堆罚时。然而djh爷全部1A,tql。

题目按照一血时间升序,大致符合难度顺序。


中国剩余定理板子。由于我太菜了忘记怎么crt写了,所以码了很长时间。

有个邪道做法,由于只有三个模数,且只有第三个很大。可以枚举答案是第三个模数的多少倍,只需枚举\(17\times 107\)次。


djh爷打了个表发现\(n\geq 14\)的时候,答案全都是\(500\)。

由于我zz所以读入用的int,然后RE了一发。


直接暴力,根号分治即可。

虽然\(250ms\)的时限看起来很不根号,然而你敢写就敢过……

感谢djh爷提供代码。


对于\(2n\)边形,我们可以先确定一个正\(n\)边形,然后每两个点之间找一个位置即可,根据圆周角定理,这些角一定都相等。

奇数的情况随便判一下就好。

我们挂了很长时间是因为没有意识到\(9\)边形里居然可以套一个\(6\)边形……我菜死了。

继续感谢djh爷提供代码,cjc爷提供思路,我负责给神仙递面包。


显然环内的每个元素都要分开,缩点求最长链即可。

没看见多组数据+输出忘记换行,被搞两次,mmp。

果然我写的代码一定有锅。


djh爷一眼看出是容斥,tql。

假设硬点了一个长度为\(k\)的前缀冲突了,剩下的随便选有\(26^{n-k}\),发现如果它的某个后缀也是原串的前缀就会算重。

然后发现就是个kmp,对\(next\)为\(0\)的前缀容斥即可。


一血这么晚很可能是题面太长了。

发现一个置换中,一个奇环走两步长度不变,一个偶环走两步会被拆成两个长度为一半的环。

所以一个置换合法的充要条件是所有偶环出现的次数为偶数。

所以数据范围明明能出到\(10^6\)的。

然后就因为语言选错成功CE了,POJnb。

这题到最后整整三页CE。


这题比赛的时候直接没开,反正到最后才\(2\)人过掉。

然后题面非常不显眼的地方写出了重量加入和删除都是递增的,所以一个原来非常复杂的数据结构就变成了简单的队列。

因为带删除\(01\)背包现在也没人会做,所以考虑分块。

每次维护最后一块截止到每个左端点的背包。

删除的时候如果把最后一块删完了,就把最后一块的右侧一直到当前右端点全都看做新的最后一块,重构一下。

新加入的元素单独维护,询问时用单调队列合并两段背包。

当然,我只会口胡不会写。

每个元素只会被加入一次,重构一次。操作一个元素的复杂度是\(O(mod)\),


后缀数组板子,对每个后缀前后各找一个与它最接近的别的串的后缀,它的贡献是lcp+1。

我们队最后\(50\min\)开的题,我写+调了\(45\min\)过掉了,感觉手在发抖。

感谢djh神仙提供hack数据,不然我就调不出来了qwq


这题纸质题面数据范围写错了导致没多少人做

线段树维护一堆标记,我们队没开。

顺便这题其实是最晚一血的,然而不知道为什么放到前面讲。

加和除法操作不会影响\(\max\),两种标记可以直接合并。

暴力维护标记会爆long long,可以维护\(\log\)个标记,因为再进行除法就等价于区间赋值了。

其实这里我已经不知道老师在说什么了


拿到了这题一血,很荣幸。

虽然都是两位神仙带着,我啥也没干。

感谢djh神仙写的ntt,我是真的写不动多项式。

大胆猜结论,发现满足条件的集合要么是个\(0\)开始的等差数列,要么是个\(0,a,b,a+b\)的四元组。

等差数列很好做,四元组可以转化成多项式卷积。

djh爷作为全队唯一会写ntt的神仙毅然接下了重担,然后一发AC,tql。

而且他的ntt跑\(5\times 10^5\)只花了\(10ms\),太神了orz

原文地址:https://www.cnblogs.com/suwakow/p/11375068.html

时间: 2024-10-09 00:02:50

ZROI 19.07.31 AB班ACM的相关文章

ZROI 19.07.28 序列数据结构/jk

写在前面 dls:"我不会数据结构,但是APIO的数据结构场我写了,还是蛮简单的." T1 CF643G Sol: 有一个\(O(n\log^2n)\)的做法:假设将区间排好序,取六等分点,则答案一定覆盖了若干点,求区间第\(k\)大即可. 然而会TLE 定义绝对众数为区间中出现超过一半的数. 有一个经典的做法求绝对众数,然而它要在保证有解的时候才保证正确性. 维护当前答案和出现次数,遇到相同则\(+1\),不同则\(-1\),降为\(-1\)的时候就把当前解替换. 显然如果有解的话,

ZROI 19.07.29 线性代数入门/wq

1.高斯消元 在模意义下依然有效,对主元求逆即可. 甚至可以模合数,需要对两个方程辗转相除,复杂度\(O(n^3\log p)\). 辗转相除法只要能定义带余除法就有效. 逆矩阵:对于矩阵\(A\),定义逆矩阵\(A^{-1}\)为满足\(A\cdot A^{-1}=A^{-1}\cdot A=e\)的矩阵. 求逆矩阵可以高斯消元.设有\(A\cdot A^{-1}=e\)的形式,把\(A\)消元成单位矩阵的过程中,对方程右侧进行同样的操作. 应用:设有方程\(A\cdot x=b\)(大写字母

ZROI 19.07.28 组合计数/lb

T1 题意:\(n\)个变量,\(0 \leq x_i \leq c_i\),求\(\sum x_i = A\)方案数.\(n \leq 32\). Sol: \(n \leq 10\)的时候容斥很水,然而生成函数掉线了. \(n \leq 32\)的时候,dls:"显然Meet in Middle."然后我又掉线了 全世界就我不会生成函数 T2 题意:求\(0\)到\(2n-1\)的排列\(p\)的个数,使得对于任意的\(i\),\(n^2 \leq i^2+p_i^2 \leq 4

ZROI 19.07.30 简单字符串/ll

写在前面:今天下午药丸--不会字符串,全程掉线/ll 给出字符串\(S\),\(q\)次询问,每次给出\(a,b,c,d\),询问\(S[a,b]\)的所有子串和\(S[c,d]\)最长公共前缀的最大值.\(|S|,q \leq 10^5\). 取反建个SAM,每次二分答案.如果存在,合法串的右端点一定在\([a+len-1,b]\),建个主席树维护一下这些后缀在不在对应串的子树里就可以. 有一个字符串\(S\),初始为空.\(m\)次操作,每次操作在第\(x_i\)次操作之后的字符串后面加上一

Android实现下拉导航选择菜单效果【转载地址:http://www.cnblogs.com/hanyonglu/archive/2012/07/31/2617488.html】

本文介绍在Android中如何实现下拉导航选择菜单效果.   关于下拉导航选择菜单效果在新闻客户端中用的比较多,当然也可以用在其他的项目中,这样可以很方便的选择更多的菜单.我们可以让我们的应用顶部有左右滑动或进行切换的导航菜单,也可以为了增强用户体验在应用中添加这样的下拉导航选择菜单效果. 关于它的实现原理,其实也是挺简单的,就是使用PopupWindow来进行展现,在显示时控制其高度并配置以相应的动画效果.在PopupWindow中我使用GridView来控制里面的菜单项,每个菜单项对应相应的

ZROI 19.08.07模拟赛

传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. "正睿从来没有保证,模拟赛的题目必须原创." "文案不是我写的,有问题找喵老师去."--蔡老师 A R爷再次翻车,搞出来了一道六年前的CF题. \(100pts:\) 然而不是原题也很简单,斜率优化板子,单调队列搞一下就完事了. 也可以wqs二分,复杂度可以做到\(O(m\log m)\),\(与\)p\(无关.所以R爷差点把\)p$出到\(10^5\). B 本题乱搞做法非常多,所以R爷动用了权限来

ZROI 19.08.10模拟赛

传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. A \(20pts:\) 枚举操作序列然后暴力跑,复杂度\(O(6^n)\). \([50,80]pts:\) 枚举改成dfs,每层操作后还原.复杂度\(O(3^n)\). 全0或全1可以直接返回. 写法优秀可以过\(80pts\). \(100pts:\) 类似非递归fft的写法,bitrev后可以位运算优化. 最下面四层可以预处理,复杂度\(O(3^{n-4})\). 然后疯狂卡常就完事了( 然而由于swk人菜常数大,明明所有

ZROI 19.08.02 计算几何

1.向量基础知识 \(atan2\)可以求极角,但是不是特别精确,在坐标接近\(10^{9}\)时会出锅,安全的做法是叉积. 旋转.反射和平移等都可以抽象为矩阵,即,它们可以复合.(需要一些必修四知识) 给一个序列,每个位置表示旋转.反射.平移中的一种,求\((x,y)\)经过序列\([l,r]\)的点. 线段树维护矩乘就好了,矩阵里需要带个常数位置. Simpson积分 不会积分,告辞. 2.简单题 求点\(p\)在直线\(p_1p_2\)上的投影. 投影就是点积,直接积就行了,必修四怎么学的

ZROI 19.08.08模拟赛

传送门 写在前面:为了保护正睿题目版权,这里不放题面,只写题解. 首先恭喜swk今天翻车! "小心大样例演你."--天祺鸽鸽 果然swk今天被大样例演死了,天祺鸽鸽诚不欺我! A 这题标程是前几天ACM赛的双栈背包-- 然而可以排序之后直接背包,\(O(nm)\)随便过( B 菜 swk 菜 发现答案就是子串中最长border,即串长减去最短循环节. 每个字母是独立的,可以分开计算答案. 对第\(i\)个字母,设循环节循环次数为\(k\),在循环节内的长度为\(f_i\),剩余的长度为