首页 > 其他分享 >4月CWOI杂题

4月CWOI杂题

时间:2023-04-08 17:16:26浏览次数:47  
标签:1231 text bmod CWOI binom 杂题 复杂度 进化

tips:为了避免一不留神题目就被邪恶的 o 老师隐藏,题面文件在 cnblogs 上有备份。

C0216 【0407 C组】模拟测试

这场比赛四道题代码加起来长度不超过 1500 个字符,赢!(223+399+330+541=1493)

A 【1231 C组】数组计数

定义 \(f_{i,j}\) 表示前 \(i\) 个数,和为 \(j\) 的方案数,前缀和优化转移。时间复杂度 \(\text{O}(nk)\)。

B 【1231 C组】旅行

因为终点是固定的 \(a_i\),考虑把路径转化成找到一个以 1 为起点和终点的环再减去从 \(a_i\) 到 1 的部分。发现这样问题就等价于给你一些点,找到一个最短的联通所有点的边集,这个环会经过其中每条边两次。每次加点的时候一直向上跳到已有的路径上。因为每个点只经过一次,时间复杂度 \(\text{O}(n)\)。

C 【1231 C组】进化

因为数据给了 \(T=2^d\) 的部分分,这使我们联想到如果能在 \(\text{O}(n)\) 的时间内解决 \(T=2^d\) 的情况,就可以做到 \(\text{O}(n\log T)\) 了。

首先 \(b_i=(a_{i-1}+a_{i+1})\bmod 2=a_{i-1}\oplus a_{i+1}\)。一次进化后,\(a_i\) 会对 \(a_{i-1},a_{i+1}\) 产生贡献;两次进化后,\(a_i\) 会对 \(a_{i-2},a_{i-1},a_i,a_{i+1},a_{i+2}\) 产生贡献 \(\ldots\) 也就是说,“\(a_i\) 在 \(T\) 次进化后会对 \(b_j\) 造成贡献的次数”等于“令 \(s_k=\sum\limits_{t=1}^kx_i\),满足 \(i+s_k\in[1,n]\) 的,长度为 \(T\) 且只包含 \(1,-1\) 的,\(i+s_T=j\) 的数列 \(x\) 的个数。

发现这个 \(i+s_k\in[1,n]\) 的限制很麻烦,考虑把 \(a_i\) 变成一个如图所示的环:

即 \(c_0=c_{n+1}=0,c_i=c_{2n+2-i}=a_i\)。发现对 \(c\) 进化和对 \(a\) 进化是一样的,这很显然。

令 \(m=2n+2\),\(c_i\) 真正会对 \(c_{(i+x-(T-x))\bmod m}\) 产生影响当且仅当 \(c_i\times\binom{x}{T}\equiv 1\pmod 2\),即 \(c_i=1,\binom{x}{T}\equiv 1\pmod 2\)。因为我们此时的 \(T=2^d\),由 Lucas 定理 可知只有当 \(x=0,T\) 时才满足上述条件,即 \(c_i\) 只会影响 \(c_{(i+T)\bmod m},c_{(i-T)\bmod m}\)。一次操作时间复杂度 \(\text{O}(n)\),总时间复杂度 \(\text{O}(n\log T)\)。

D 【1231 C组】Y老板的别墅

定义 \(f_{i,j}\) 表示只考虑 \([i,j]\) 间的房子(可以认为在 \(i-1,j+1\) 处各有一栋无限高的房子)的方案数。转移就是枚举当前范围内最高的楼 \(k\),满足 \(r_k=\min(k-i,j-k)\),\(f_{i,j}\leftarrow f_{i,j}+\binom{k-i}{j-i}\times f_{i,k-1}f_{k+1,j}\)。解释一下:乘组合数是因为我们只规定了范围内每栋房子的相对高度。

发现对于一个 \(k\),满足 \(r_k=\min(k-i,j-k)\) 的 \(i,j\) 很少,所以总的转移是 \(\text{O}(n^2)\) 的。

标签:1231,text,bmod,CWOI,binom,杂题,复杂度,进化
From: https://www.cnblogs.com/xx019/p/17278127.html

相关文章

  • 4月CF杂题
    CodeforcesRound862(Div.2)E.ThereShouldBeaLotofMaximums题意:定义一棵点有颜色的树的\(\text{MAD}\)为树上编号最大的出现了至少两次的颜色。对于树上每条边,求出断开它后生成的两棵树的\(\text{MAD}\)的最大值。\(n\le2\times10^5,a_i\le10^9\)。先找到整棵树......
  • 4月AT杂题
    AtCoderBeginnerContest296D-M<=ab题意:求最小的正整数,不小于\(m\),且能被表示为两个不大于\(n\)的正整数的数,不存在输出-1。\(n,m\le10^{12}\)。直接枚举\(a\),计算最小的满足\(ab\gem\)的\(b\),如果\(a>b\)则后面的情况一定是重复的。时间复杂度\(\text{O}(\sqr......
  • 4月杂题
    距离NOI2023还有109天,不能再沉溺于省选的成功了。开始更新博客!4月重点在whk上,不会更很多,为了调和whk的。1.[NOI2023联合省选]填数游戏考虑对于第\(i\)个数,把\(T_i\)中的两个数连边,特别地,只有一个数连自环。此时每个连通块只能是树/基环树。基环树是好做的,因......
  • 【杂题乱写】ARC108
    AtCoderRegularContest108ASumandProduct\(O(\sqrt{n})\)枚举约数判断即可。BAbbreviateFox用栈维护,每次判断栈顶是不是fox,是则弹出。CKeepGraphConnect......
  • 杂题乱做4
    P8499首先,显然需要树哈希。哈希方法见OIwiki。设\(f_i\)表示\(i\)子树的哈希值,那么我们如何判断\(G\)能否通过删去不超过\(k\)个点变成\(H\)?考虑\(solve(i,j......
  • 【杂题乱写】ARC107
    AtCoderRegularContest107ASimpleMath把\(a,b,c\)提出即可。BQuadruple改成\(a+b=k+c+d\),显然可以枚举\(c+d\)的值从而得到\(a+b\)的值,在此基础上求出每......
  • 【杂题乱写】ARC105
    AtCoderRegularContest105AFourtuneCookies按题意模拟。BMAX-=min题目中提到过程一定会停止,考虑\(n=2\)时就是更相减损至相等,即求\(\gcd\),扩展到\(n\)更大......
  • 【杂题乱写】ARC106
    AtCoderRegularContest106A106枚举指数即可。BValues要求每个连通块内\(\suma=\sumb\),这样一定可以得到答案。CSolutions比较简单的构造。分\(m\)的值进......
  • USACO23FEB G【杂题】
    A.[USACO23FEB]EqualSumSubarraysG给定一个长为\(n\)的数组\(a\),满足所有子区间的和互不相同。对于所有\(1\leqi\le n\),求出最小代价使得对\(a_i\)进行一......
  • 【杂题乱写】ARC104~106
    ARC104APlusMinus普及题,解方程。BDNASequence枚举区间前缀和判断合法即可。CFairElevator先排除出现重复或\(L\geR\)的明显不合法情况。观察发现一个合法......