首页 > 其他分享 >CF1713F 题解

CF1713F 题解

时间:2023-03-09 17:01:16浏览次数:53  
标签:标号 le 题解 CF1713F 对角线 binom 翻转

题意

传送门

给出一个从 \(1\) 到 \(n\) 的数组 \(a\),有一个从 \(0\) 开始标号的大小为 \((n+1)\times(n+1)\) 的矩阵 \(b\),通过以下方式生成:

  • 对于 \(0\le i\le n\),\(b_{i,0}=0\)
  • 对于 \(1\le i\le n\),\(b_{0,i}=a_i\)
  • 对于 \(1\le i,j\le n\),\(b_{i,j}=b_{i,j-1}\oplus b_{i-1,j}\)

现在,给出 \(b_{1,n},b_{2,n},\dots,b_{n,n}\),试还原出一个满足条件的 \(a\) 数组,或报告无解。

\(1\le n\le 5\times10^5\)。

题解

称矩阵第一行为 \(a\),最后一列为 \(b\),并将 \(a\) 翻转,从 \(0\) 开始标号。不难看出 \(b_i=\oplus_{i=0}^{n-1}a_i[\binom{i+j}{j}\bmod 2]\)。

对后式用卢卡斯定理,得到 \((i+j)\&j=j\)。即 \(i\&j=0\)。若已知 \(a\),可以 FWT 求其子集和,各位翻转一下即为 \(b\);但当 \(n\) 不为 \(2\) 的整数次幂时,不能将 \(b\) 翻转由 \(b\) 求 \(a\)。

翻转是由于 \((i+j)\&j=j\),若其为 \(i\&j=j\),就是一个简单的子集和。由此考虑到用对角线作为中转。

从 \(a\) 到 \(b\),必然经过仅经过一次对角线。从 \(a_i\) 到对角线(从右向左从 \(0\) 开始标号)\(j\) 再到 \(b_k\),方案为 \(\binom{i}{j}\binom{k}{j}\)。产生贡献的充要条件即为 \(i\&j=j\wedge k\&j=j\)。于是对 \(a\) 求超集和再求子集和即为 \(b\)。这样就规避了翻转。从 \(b\) 到 \(a\) 只需逆着做一遍即可。复杂度 \(O(n\log n)\)。

标签:标号,le,题解,CF1713F,对角线,binom,翻转
From: https://www.cnblogs.com/FishJokes/p/17199143.html

相关文章

  • 江南信息学2023第三周练习20230310 题解
    比赛链接1001:三个数的最大值条件判断,如判断a最大就是a>=b&&a>=c,以此类推1002:星期几取余,n%7结果是0则是周一,是1则周二,以此类推1003:奇偶分家设两个求和变量sum1,sum2......
  • ABC292F题解
    首先先钦定\(a\leb\),否则交换一下就行。方法1:二分答案。容易发现,答案至少为\(a\),并且用左下角为一个顶点一定不会更劣,并且另外两个点一定都在线段上(否则可以调整)。我们......
  • CF207C3 Game with Two Trees 题解
    脑子不够,科技来凑。不过好像也没有用多么高级的科技……首先这个题目很坏,它让你翻转\(S_{t_2}\)。即从\(t_2\)某个节点往下走到另一个节点的路径所表示的字符串。这个......
  • Python自动化登录验证码问题解决
     1.测试环境中通常解决验证码问题的方法 在测试环境中我们通常通过各种手段来逃避或者获得验证,而这些手段主要是要求开发者在开发的时候留有一定的后门。下面简述几种......
  • 【题解】ARC157 A-D
    因为有的题代码没写出来,所以代码就先咕咕咕了。A.XXYYX题目分析:可以发现每一个XY必然伴随着出现一次YX,当然可能会有一个XY没有伴随的YX的。而且若必须存在XX......
  • 【题解】[Ynoi2015] 我回来了
    题目分析:所谓的期望乘以\(R-L+1\)其实就是求亵渎的触发次数,因为我们能选择的伤害只有\(R-L+1\)种。有一个很显然的转化,就是对于伤害\(d\),我们以随从的血量......
  • DP练习1题解
    这是2023.3.7DP题单十个题的题解。T1ColoredSubgraphs(CF1796E)简要题意:给定一棵树,你要对树进行链剖分,必须剖成上下竖直的链,求剖后最短链的长度最大值。最小值最大......
  • 【题解】[Ynoi2013] 大学
    题目分析:考虑对于一次修改至少会让\(x\)变成\(\frac{x}{2}\)所以对于每一个数最多被操作\(\log{n}\)次,那么直接暴力操作就好了。所以其实关键问题是每次怎么找到哪......
  • QOJ5256 [CERC2022] H. Insertions 题解
    题面题意:给定字符串\(S,T,P\),求将\(T\)插入进\(S\)之后\(P\)最多的出现次数。输出:最多的出现次数;达到这个最多出现次数的插入位置数量;达到这个最多出现次数......
  • 【题解】[Ynoi2010] y-fast trie
    题目分析:显然可以对于所有的\(x\)对\(C\)取模后处理。那么就是两种情况:\(x+y\geC\)\(x+y<C\)对于第一种情况直接找最大的两个数就好了,关键就是第二种情......