zoukankan      html  css  js  c++  java
  • 四校省选模拟一

    回来学校后的第一轮考试,基本上全程都在奔着部分分。

     

    D1T1:

      这个题首先想的原根,这样把未知数放到指数上就可以 bsgs 了。n是和数所以要先分解掉然后 crt 合并。然后复杂度做到单次$sqrt p$就不会了。然而求原根还不会,用的`bsgs`求的,T飞。后面学了快速求原根。

      正解是直接把指数消掉(右面变成$M^{-C}$),那么问题就是求$C$在$phi (N)$下的逆元。模数就是$(p-1)*(q-1)$,于是问题就是分解$N$。然后入手点是$lambda=q-p le 3e5$,考虑怎么能枚举出一个$p$。$N=p*(p+lambda)$,解开$p$,换成枚举$t=frac{lambda}{2}$,于是$p=sqrt{t^2+N}-t$,右面有$-t$就表明$t$还有一个下界的限制,尝试卡住下界,枚举$k^2=t^2+N,p=k+sqrt{k^2-N}$,那么$k$从$sqrt N$开始。$k$的基数是$1e9$,那么$k$往上枚举$+1$,原来的$t$的增量很大,那么$lambda$的限制就只用枚举几十个$k$就可以了。

     

    D2T1:

      一开始感觉很像决策单调性优化。打了表,貌似决策点是递增的,但是并不是单调性的转移,要想以此优化的话只能把本轮决策点$j$从上一轮的决策点$las$枚举到$i$,可能复杂度没有优化。

      基本的式子$f[i]=minlimits_{j<i} { f[j]+cal(i,j) } +m[i]$,其中$cal(i,j)=lceilfrac{c[i]-c[j]}{Z} ceil$,这里不用考虑中间经过的特殊点的贡献,因为会在那个特殊点统计到。然后这个$cal$的式子是可以展开的,$c[i]/Z-c[j]/Z-[ c[i]%Z > c[j]%Z ]$,然后就把$i$,$j$分离了。至于$[ c[i]%Z > c[j]%Z ]$,可以权值线段树维护,分两段转移。

     

    D2T2:

      一开始感觉很像容斥,也打了下来。赛后没分,后来才发现有个地方还是没去掉重复($2*i$颗宝石各颜色数量都是偶数的计算,实际上就是题目根本所在)。

      这题$N$很大,$D$在$1e5$,从$D$考虑。那么需要转化一下题意,$M$对颜色相同,剩下的,最多可以有$min(D,N-2*M)$颗宝石是两两不同,也就是最多$min(D,N-2*M)$种颜色的宝石是奇数颗。这个需要容斥。设$f[i]$表示钦定$i$种颜色有奇数颗的方案(现在看来钦定$i$的意义和至少$i$的意义是不同的)。某种颜色有奇数个才有1的贡献,这个就是指数生成函数$H1=frac{e^x-e^{-x}}{2}$的形式。相应的,没有限制的颜色的贡献表示为生成函数$H2=e^x$,那么$f[i]=inom{D}{i} n! [x^n](H1^i H2^{(D-i)})$。然后这里往下推,用二项式定理展开$H1$函数,最后$e$上面指数合成一项,那么$[x^n]$就可以直接得到了。由于$[x^n]$项其实是$frac{x^n}{n!}$的系数,这里$n!$抵消掉分母。接着就是一个卷积式。得到$f$后,求出恰好$i$颜色的方案,$g[i]=sumlimits_{j geqslant i} inom{j}{i} f[j]$,需要用二项式反演得到$g$。这个式子也是卷积式。

      这道题求多种颜色满足同一种限制的方案数,用生成函数表示一种颜色的贡献,多项式乘法得到$[x^n]$相当于“一共有$N$颗宝石”(也就是做了背包)。有了生成函数的“抽象表达”,就可以直接得到乘积结果的表达式子,就省去多项式乘法了。

     

    D2T3:

      先从sub2的子任务开始想。只考虑单一点的变化,如果某一点从1变为0,那么之后询问的答案就一定包含了这段为1的时间,可以直接加到贡献里。那么只用维护当先点的状态,以及这一状态的开始时间,回答询问时先把之前出现的1时间段贡献加上,在加上剩下的至今的贡献。

      sub3的话,因为 toggle 之后变为联通不再断开了,也就是 因$i$点亮而开始联通的贡献 就不会再消失了。正向做这个过程,寻找每次点亮使哪些询问联通,记录时间,最后根据询问时间和联通时间得到答案。每次点亮$i$会把跨过$i$的并且左右端点在前驱0、后继0之间的询问,是一个矩形。然后考虑离线下来,扫描线处理询问。因为这里矩形不相交,所以直接拿set维护, lower_bound 就可以查询。

      正解差不多就是结合上面。仍然考虑 toggle 带来的影响,和sub3一样找到影响矩形。在$i$为1,后面到$j$为0,贡献$j-i$,把时间段的贡献拆到$i$,$j$上就是分别$+i$,$-j$。其实询问的约束还有时间,所以是三维限制。矩形加值差分之后变成单点加入,矩形查询,那么就成了三维偏序问题。

  • 相关阅读:
    ubuntu server编译安装nginx
    XPath具体解释
    windows下安装,配置gcc编译器
    给字符数组赋值的方法
    开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
    MiinCMP1.0 SAE 新浪云版公布, 开源企业站点系统
    Mac下cocos2dx-3.0打包Android时,提示&quot;SimpleAudioEngine.h&quot;not found的解决方法
    GG同步到sqlserver报错一例 Invalid date format
    分布式文件系统
    动画clip仅仅读的解决的方法,以及动画关键帧回调的办法
  • 原文地址:https://www.cnblogs.com/Duan-Yue/p/13046682.html
Copyright © 2011-2022 走看看