Link
打表大法吼
Code
1 | //Code by Lucida |
打表大法吼
1 | //Code by Lucida |
S1(n,k)=(n−1)S1(n−1,k)+S1(n−1,k−1) S2(n,k)=kS2(n−1,k)+S2(n−1,k−1) B(n)=i=0∑nS2(n,i)=i=0∑n−1Cn−1iBi
从一个集合中取元素,每个元素可以取无限次,问乘积模m为x的序列有多少个 看一眼排列似乎是指数生成函数,然而那样就似乎会相当麻烦 注意到每种元素可以取无限次,于是序列的每个位置的元素选取都是独立不受影响的,就可以看成从n个集合各取一个元素的方案数了,然后就可以套普通生成函数了 下一步需要把答案构造成函数某个项的系数,也就是说项的次数与x有关,系数为方案数。但是x的转移是乘积取模的形式,这个不好。为了去掉乘,就把方程取个log,哦不对是取个。然后就好了。 在IDFT之后,在计算结果的时候把i模一个ϕ(m)=m−1。快速幂做完就行了。
各路大神似乎都把当成了0,但是根据定义,强迫症患者表示不爽。
1 | //Code by Lucida |
感觉原根很玄妙啊
满足的最小x称为a关于p的阶,记为δp(a),简写为δ(a)
根据性质1,δ(x)∣ϕ(x),所以只要求出phi(x),依次枚举其因数判断
δP(g)==ϕ(P),则g是P的原根
将ϕ(P)质因数分解存储在p[]中 然后从2开始枚举判断,如果对于∀pi∈p[],有,则x是P的原根(一开始分子直接写了P,但是因为数据弱一直水过了??)
如果gcd(b,P)==1,那存在a,0≤a<ϕ(P),满足,称a为b关于P的指标,记,简记
求出原根g,然后BSGS。
的x的个数 P=i=1∑cpiki,根据转化为c个的解的积
则 设x=λpt,gcd(λ,p)==1 可以知道at≥k t≥⌈ak⌉ 所以解数为pk−⌈ak⌉
设b=λpt,gcd(λ,p)==1
如果,假设存在解x0,p的次数为s (ps)a=psa=pt,与矛盾,所以必定无解 当a∣t时,方程可以化为 令x′=patx,b′=λ,p′=pk−t 则x′∈[0,pk−at) 但是在新的方程中,x′∈[0,pk−t),所以对新方程求出答案之后需要×pt−at
对这个方程取 现在需要把指标项代换,需要保证与x一一对应,取p′的原根作为底数即可,而p′一定存在原根。 令 现在转化为求方程的解数
对于的解数
Ax+Cy=gcd(A,C)
还原到原方程的解就是X=gcd(A,C)Bx,设第一个非负X为X0
则X=X0+gcd(A,C)kC
所以在意义下有gcd(A,C)个解
这么显然的东西我居然还想了这么久
就好了
1 | //Code by Lucida |
f(n)=f(n−1)+f(n−2) 定义生成函数为G(x) G(x)=f1x+f2x2+f3x3+...+fnxn+... G(x)−f1x−f2x2 =(f1+f2)x3+(f2+f3)x4+...+(fn−2+fn−1)xn+...=x2G(x)+xG(x)−xf1x G(x)−x=x2G(x)+xG(x) (1−x−x2)G(x)=x G(x)=1−x−x2=−(x+21−√5)(x+21+√5)x =x+21−√5a−x+21+√5b 解得a=10√5−5,b=10√5+5 G(x)=x+21−√510√5−5−x+21+√510√5+5 =√51(1−21+√5x1−1−21−√5x1) 根据等比数列求和公式 a+aq+aq2+..+aqn−1=1−qa(1−qn) 当−1<q<1时 n→∞limqn=0 所以1+x+x2+x3+...=1−x1 设α=21+√5,β=21−√5 则上式 =√51(1−αx1−1−βx1) 下一步用到的公式的前提条件是∣x∣<1。so?
要求维护一棵树,在资磁LCT所有操作的同时,进行对子树的修改和查询操作。
Tarjan提出的解决方案是
黄志翱大神在论文中写的是
看过两篇论文的zky大神说这两者不是完全相同的
所以还是叫它吧(虽然我确实更喜欢这个名字)
可以看作是的一种改进,解决了不能触及子树的弱点,据说复杂度也是O(nlogn),只是常数巨大。
在上,维护实链,虚边只能通过虚子树的父指针连接。
在上,在维护实链的同时想办法维护子树,就可以达到目的了。
维护子树,显然可以在每个节点上记录一个平衡树存储所有的虚子树的根,在中切换实边对应在平衡树中的插入删除。然而这样会比较麻烦,因为每个节点同时存在两份数据,修改任意一个必须手动地让另一个同步。
翱犇在论文中给出了一种更巧妙的做法(来源于杜教?),记录四个子节点0,1,2,3,前两个还是维护链,后两个维护虚子树。如果通过某种手段可以让所有虚子树都处于叶节点,就可以直接链接过来而不会产生问题了。
做法和边分治比较类似:加入虚节点,把虚子树根的序列强制转成二叉树,就可以了。
注意的是,为了保证复杂度,维护虚子树的二叉树也需要,此时必须虚节点,转到真节点的下方。 会发现:一个真节点的2,3号子节点,维护的序列是完全不会有联系的,因为都是到真节点就停止了,不会到另一棵子树。这个不必困惑,因为首先这样做是不会让复杂度退化的,其次这样做可以使得对虚实节点的操作完全一视同仁,可以简化实现。
训练指南的模板题,还是记一下吧 对于一个循环C 假设项数n为奇数 则C2一定也有奇数个项 否则 C2一定是两个2n项的循环 根据这个结论判断能否构造合法解 自行举例感受一下
1 | //Code by Lucida |
WC像梦一般就过去了,记一些碎片吧 有幸结识了很多大神。 舍友是qdez的dms,wxy,nzm, 虽然我们学校只有我一个人,但和每天和他们一块感觉非常愉快 认识了总是把包背在前面的hwc 认识了今年唯一一个Au wjh 还见到了闻名已久的zyz,Menci,ShallWe,Yveh 还认识了大连24中的几位特别会玩狼人杀的大神
一句话看完开幕式 CCF ONI,拒绝作弊; P NOI,拒绝作弊; 因为相爱,拒绝作弊。
走之前swh跟我说要享受WC,听了第一节课才发现WC被称为冬眠营是有原因的 jcvb讲字符串导论,讲了各种神奇的结论和各种神奇的引理,听了几个证明之后脑子就转不动了 任之洲讲Ulam猜数游戏,讨论了一些容错的问题的解法,比较有趣 尛焱轟讲IOI2016的试题,感到一些思路是非常妙的,IOI和NOI风格还是差别比较大 晚上姻缘交流,matthew99讲了一种BM算法,可以很快地求递推式?听起来很厉害的样子 SkyDec讲了一道有趣的字符串题,标程30k,1000行 讲完之后不久,uoj上就多了十几个差评 好像不记得另一位大神的名字了,讲了仙人掌计数,看起来很厉害
胡渊鸣讲物理模拟,比较长见识 杜教讲并行算法,比较长见识 猪猪侠和cy讲了一般图最大匹配的矩阵做法 immortalCO和WrongAnswer讲了一些关于DFS序和仙人掌的东西,但中途和dms他们跑去试机了,没有听完
北大一位讲师来讲近似算法,看起来比较学术,好吧我复习FFT 毕老师讲整数与多项式,一开始还可以,后来就跟不上了 晚上试机赛,起床困难综合征和小Q的运动季。dms参加比赛多,第一题写过4遍,就直接T2。1h后,我写完拍完T1,看T2。 T2是提答,看来今年考提答。第一个点枚举,第二个点dms猜答案在232之内,枚了30min发现解很差,我看了看想枚举子集用扩欧解,dms告诉我子集枚举不完,我就想随机子集做扩欧。 dms大爷一拍大腿,想出了正解:解模数互质的最大独立集,然后CRT。我写程序验证下,发现所有模数互质。dms太神了!!
wangyisong讲底层优化,据说和考试有着密切关系。卡常数当然与考试有关了!但我猜中开始没猜中结局 kefandong讲线性代数,感觉他讲课还是不错的,语速平缓,发音清楚,但我听着听着还是掉线了 jiry讲压缩算法,带领全场开车 下午+晚上就写了可持久化Treap和单纯形!Treap的SIZE一开始待定就开成了0,结果没RE反而把输入缓冲区冲了。。学了构造初始可行解的办法,狂T不止,结果不知道随便怎么改改就A了,SMG!!
考试,早晨吃了不少为了防止饿,结果最后灌了一杯奶茶,肚子就废掉了,又去上厕所,白吃了那么多, 听了dms的话没有带水,结果旁边的妹子不仅带水,还带了一瓶饮料! 又开始犯大赛嗓子干综合征(不过还好开场不久就发了优酸乳),然后比赛开始了 T1判前20分是很好写的吧。没错我没有意识到后面是环和环套树! 于是开始写暴力,结果写了很长时间,居然是i,j弄错了!!眼高手低得治! 两种暴力放着拍,做T2。 三道题。。好吧,,模板是大括号不换行,从0开始计数的。。。很不习惯,手动把大括号换行 T1把sort(a,n)改成std::sort(a,a+n)就有5分,剩下的看起来一脸不可做,只能桶排吧 前16位排,后16位排,写完很兹磁啊,结果WA掉了。又查了很久,发现连桶排的顺序都搞错了。。今天是怎么了。改掉之后就不管了,反正已经达到复杂度最优,我也想不出什么别的优化方法了 T2纯暴力 T3纯暴力 然后开提答。提答1分1分地给?好吧。 前后手玩几分,贪心构造几分,最后9分收场,花了2h。出场时候大家都说十几分很好做,感觉自己弱爆了 在结束前10分钟,我回去看第一题,忽然发现有个很好写的环。但也肯定没办法,只好扔掉了,但似乎状态少爆搜可以过? 离场之后去食堂,结果是第一个到食堂的选手,被志愿者认成了志愿者 比较压抑,回宿舍看新出的Agents Of Shield,刚看到Mace被包围了就被叫去看成绩 在赛场门口等了一年的样子。迅速走到座位,深呼吸,一看69分。似乎没有挂的很惨?遗憾的就是环居然没有看出来,少了10分。 讲题之前,集训队爷把T2出题人松爷开了。 讲题,immortalCO说T1前40分因为状态总数少,40分写一个爆搜就行了。dms就是这样做的,10min四十分。我后面的爆搜全WA了,想想是因为我没指望50的范围,排列在8的范围内的hash是不爆int的,而50的范围就相当于直接自然溢出,一个是容易冲突,再一个没准出现负数,模一下得到的hash值也是负数。正解是个置换之类的东西,不懂。 T2的T1要分三段,因为考虑Cache缓存的大小三段可以更好地存下。听到这,我就不听后两问了。 T3做法更复杂,最高分才30+ 我也就拿了暴力分,但似乎很多大神考挂了 晚上联欢,Menci和24OI合唱了一首改编的歌,唱出了OIer的生活,掌声雷动
社会活动日,去柯岩和鲁迅故居。 在鲁迅故居和龙哥一起转了转鲁迅纪念馆,龙哥教导了我很多人生的经验。能结识龙哥这样的富有人格魅力的大神,真的感到幸运之至 下午dms签到了PKU的省队一本。 zyz和韩神和汪神去THUWC学车
回家
WC的考试成绩我觉得不能说明什么,就是比rp和暴力。 但这也是我第一次考到前五,希望在省选中也能考到这样的名次。
以后在考试之前要多喝水 多打打CF,简单题越快越好 练习提答
继续努力吧。加油
买票买晚了,结果没买上高铁票,只好坐汽车。 结果大年初六出发,高速免费的最后一天!! 简直上天了,向南走的半条路变成了停车场,向北走的半条路畅通无阻。就看着对面的车一辆辆呼啸而去,自己的车gu gu yong yong(方言缓慢移动的意思),心里仿佛有只Cnm在奔腾。 于是司机果然是experienced,下高速在乡间小路绕来绕去,最后还是晚了6个小时?啊本来应该8个小时的。。期间一个服务区都没停,下车之后感觉腿已经不是自己的了。 背上放在行李架上的背包,一股花生油的香味向我袭来。。。行李架上居然还存在着一桶漏了的花生油?!!于是只好提着背包了。 本来想直接转车到绍兴,但是已经9点多了。。 到酒店安顿下已经10点了。。但是饿了一天,不吃不行,于是出去吃了一顿火锅。 哦以上是
现在是
早上在外面走,过马路的时候看到一辆客车。我们停下等车过去,可司机居然停下车做手势让我们先过去;路上一个人在我们没有开口问的情况下为我们指了一下车站的方向——果然文明程度高啊! 10点到了绍兴一中。 外面看校舍比较旧了,一进宿舍发现居然是大学那样上面床下面书桌的配置!简直了,想起日照一中8个床位的上下铺,不禁感慨::同样是一中,宿舍的差距怎么那么大呢。。