不会写。。位运算真奇妙。
Notice:遇到位运算 与 和 或 ,首选分解成 \(i\&j,i-(i\&j),j-(i\&j)\) 分别枚举,这样没有多余限制而且可以(可能)把复杂度降为枚举子集(\(O(3^N)\))。
Notice:这种 “给出一种方案” 的题,隐含 “可能有很多答案,但只有一类答案方便求,且只要有答案,那这一类答案就存在(即所有答案都可以拿来证明该类答案的存在性)”
Notice:定理:设当前有 \(a_1,a_2,...,a_{n-1},a_{n}\) ,那么若 \(a_1<a_n\),则必存在 \(a_i<a_i+1,i\in [1,n)\) 。这定理的作用就在于 \(a_i\) 是任意的,可以自己随意构造函数。求解存在性问题可以化一般到特殊,而且完美符合 Notice2。
那这道题就迎刃而解了。设 \(x=i\&j,y=i-(i\&j),z=j-(i\&j)\) ,把 \(A[i]+A[j]<A[i\&j]+A[i|j]\) 变形为 \(A[x+y]+A[x+z]<A[x]+A[x+y+z]\)。
发现 \(x\) 地位更重要,而 \(y,z\) 同时枚举的话就是暴力了。故枚举 \(x,y\) ,即 \(x,y\) 是常量,\(z\) 是变量,那么按照 \(z\) 来整理不等式。
\[A[x+y]-A[x]<A[x+y+z]-A[x+z] \]发现形式惊人地一致,那么若是找到一个 \(\delta x\) (此为某种单位变换),满足 \(x+z=x+k\times \delta x\),那么就存在
\[A[x+y]-A[x]<A[x+y+\delta x]-A[x+\delta x] \]不妨采用极限的思想,让 \(x+z\) 与 \(x\) 无限趋近,那么易得 \(\delta x\) 即为给 \(x\) 加上原来没有的一位。这样我们就只需要再枚举 \(\delta x\) 即可。
复杂度为 \(O(3^N\times N)\)。
Notice:发现 \(y,z\) 地位完全一样,那么也不用枚举 \(y\) 了,复杂度降为 \(O(2^N \times N^2)\)
标签:Notice,复杂度,times,枚举,PLUS,答案,delta From: https://www.cnblogs.com/Huster-ZHY/p/16833734.html