首页 > 其他分享 >异或与乘积(又是一道数学)

异或与乘积(又是一道数学)

时间:2024-07-24 16:40:55浏览次数:13  
标签:ge2 乘积 text ge times 异或 数学 oplus

Tomoyuki-Mizuyama 有一个 \(n\)(\(2\le n\le 10^5\))个数的序列。现在他想做若干次操作,每次选择两个数,把他们异或起来,之后删除这两个数,并把他们异或后的结果加入序列。他进行若干次操作后,会把序列中剩下的数全部乘起来。他想知道最后的结果最大是多少。注意,Tomoyuki-Mizuyama 最多操作 \(n-1\) 次,在这之后序列可能会只剩下一个数。由于答案可能很大,输出对 \(1000000007\) 取模后的结果。(\(1\le a_i\le10^9\))

一个显然的贪心思路:当且仅当两个数的异或和大于他们的乘积时我们才去合并。如果暴力判断的话,复杂度是 \(\mathcal{O}(n^3)\)(口胡的),显然不行,我们尝试去找一个规律。
先抛结论:$$a\oplus b>a\times b\iff a=1,b\equiv0(\bmod 2)$$
首先充分性很好证明,一眼出,接下来证必要性。
设两个正整数 \(a\)、\(b\),\(a\) 在二进制下有 \(n\) 位,\(b\) 在二进制下有 \(m\) 位,不妨设 \(n\ge m\),首先 \(n=1\) 或者 \(m=1\) 的时候直接枚举即可,这里讨论 \(n\ge m\ge2\) 的情况。
我们可以得到 \(a\oplus b\) 的最大值是类似于 \((\overbrace{111\cdots1}^{n\text{个}})_2\) 的形式,也就是 \(2^0+2^1+\cdots+2^{n-1}=2^n-1\),同时 \(a\times b\) 的最小值是类似于 \((1\overbrace{0\cdots000}^{n-1\text{个}})_2\times(1\overbrace{0\cdots000}^{m-1\text{个}})_2\) 的形式,也就是 \(2^{n-1}\times2^{m-1}=2^{n+m-2}\),我们知道 \(m\ge2\),那么 \(n+m-2\ge n\),那么 \(2^{n+m-2}\ge2^n>2^n-1\),这就说明当 \(n\ge m\ge2\) 时,\(a\times b\) 的最小值一定大于 \(a\oplus b\) 的最大值,那么 \(a\oplus b<a\times b\),得证,此时合并一定不优。
所以我们只需要寻找 \(1\) 和与之匹配的偶数即可,还有一个问题:对于两个偶数 \(a,b\) 且 \(a< b\),我们是选择让 \(a\) 异或 \(1\) 还是 \(b\)?显然选更小的,手模可以发现 \((1\oplus a)\times b > (1\oplus b)\times a\),所以我们从小到大排序即可。
最后,我们是否用管合并后新加入的数?显然不用,因为合并(异或 \(1\))之后这个数一定就变成了奇数,再次被合并的话肯定不优。
代码:

read (n) ;
f (i ,1 ,n ,1) {
  read (a[i]) ;
  if (a[i] == 1) num ++ ;
}
sort (a + 1 ,a + n + 1) ;
f (i ,1 ,n ,1) {
  if (a[i] == 1) continue ;
  if (a[i] & 1 || ! num) {
    (ans *= a[i]) %= mod ;
  } 
  else {
    (ans *= 1 ^ a[i]) %= mod ;
    num -- ;
  }
}

标签:ge2,乘积,text,ge,times,异或,数学,oplus
From: https://www.cnblogs.com/Tomoyuki-Mizuyama/p/18321217

相关文章

  • 应用数学与机器学习基础 - 数值计算之梯度之上Jacobian和Hessian矩阵篇
    序言在数值计算与优化理论的广阔天地里,梯度作为一阶导数的向量表示,是理解函数局部变化率及进行最优化求解的基础工具。然而,当问题的复杂度提升,单一梯度信息往往不足以全面刻画函数的多变量间相互作用及更高阶的变化特性。此时,Jaco......
  • 【保奖思路】2024年华为杯研究生数学建模D题解题思路分享(点个关注,后续会更新
    您的点赞收藏是我继续更新的最大动力!一定要点击如下的卡片链接,那是获取资料的入口!点击链接加入群聊【2024华为杯研赛资料汇】:http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=MwNruKbEvR9aZns1l7xXBWmQQKYAEh-F&authKey=igaBN79pz6BhNlDQ6TIZ5YFAbn71aDcYL77uANPquLF%2FTVgeSAhEZ......
  • 数学杂记
    1.中国剩余定理(CRT)和Lagrange插值的内在联系首先考虑CRT是在解决怎样的一个问题:\[\begin{cases}x&\equivr_1\pmod{n_1}\\x&\equivr_2\pmod{n_2}\\&\vdots\\x&\equivr_m\pmod{n_m}\\\end{cases}\]其中\(n_1,\dots,n_m\)两两互质。求出满足上述同余不等式组的......
  • 【无标题】考研数学强化阶段刷题建议
    ......
  • 主席数学习笔记
    笛卡尔树太难了啊。主席树可持久化数据结构\((\text{Persistentdatastructure)}\)总是可以保留每一个历史版本,并且支持操作的不可变特性\(\text{(immutable)}\)。意思就是可以查询历史值,对于每一个历史版本\(k\),都是经过第\(k-1\)个版本、修改重连\(\logn\)个节点......
  • hi.高等数学
    高等数学课程简介高等数学是一门涵盖极限理论、微积分学、线性代数、常微分方程等内容的大学基础学科。下面将具体介绍高等数学课程:课程特点和重要性定义和组成:高等数学是相对于初等和中等数学而言,包含内容更为复杂和深入的数学领域。它主要研究的是变量及其关系,不同于......
  • 片集 - 数学 - 1
    欢迎来看“片”(的简介)由于-\(看片\)-生涯转瞬即逝,于是我选择对“\(片\)”进行一定的总结:相信你一定看懂了由于开始的时间有一点晚,就姑且认为我以后会慢慢补充吧......\(P7161\)[\(COCI2020\)\(-\)\(2021\)#\(2\)]\(Euklid\)解:数学\(GCD(a,b)=g\)\(\impliesa=g\time......
  • 《白话机器学习的数学》第2章——学习回归
    2.1设置问题    1.机器学习所做的事情正是从数据中进行学习,然后给出预测值。2.2定义模型    1.一次函数的表达式:                                                           其中θ叫做......
  • 异或运算(XOR)的可交换性证明
    异或运算(XOR)的可交换性是指:若\(a\oplusb=c\),那么有\(a\oplusc=b\)且\(b\oplusc=a\)证明:不失一般性,我们只需证明第一个等式\(a\oplusc=b\)。首先:按位异或运算有以下几个重要性质:交换律:\(a\oplusb=b\oplusa\)结合律:\(a\oplus(b\oplusc)......
  • 【数学】【模板】扩展欧几里得算法
    扩展欧几里得算法思想首先回忆一下裴蜀定理:对于任意一对不全为\(0\)的整数\(a,b\),存在\(x,y\)使得\(ax+by=\gcd(a,b)\)。扩展欧几里得算法就是求出一组解满足\(ax+by=\gcd(a,b)\),这里用到了欧几里得算法,不会的,可以看看我的博客。我们看看怎么求:当\(b=......