Posts

Showing posts from March, 2025

Chromium Chemistry (1): Reaction of Metal

Bulk Cr, like Al but not Fe, forms a protective oxide layer of Cr2O3. It is extremely inert due to the combination of corundum(alpha-Al2O3) structure and exchange inert d3 Cr3+ centers. As a result, it resists further oxidation and attack from acid. Some sources claim that acid can destroy the layer, but at least for me, 30% H2SO4 is of no use even upon heating. Maybe, HCl is needed as Cl- is a good ligand. However it was found that reduction can effectively remove passivation. Passing electric current through it, using it as cathode and diluted H2SO4 as electrolyte, can remove passivation immediately, and now Cr normally reacts with acid. Cr dissolves in acid, forming a blue solution of Cr2+. Without exclusion of air it is quickly oxidized into dark green Cr3+. Paraffin oil cannot stop this especially when heated, and preparation of Tutton's salt (NH4)2[Cr(H2O)6](SO4)2 thus failed.

Fibonacci数列的通项公式

Image
  很经典的问题,尽力讲的每个人都能懂,不需要专业知识。 题目:f(1)=f(2)=1, f(n+2)=f(n+1)+f(n), f(n)=? 首先让我们先不要管那个初始条件,只看差分方程。 它没有常数项,因此两边同乘以一个常数仍然是成立的。 f(n+3)=f(n+2)+f(n+1) kf(n+2)=kf(n+1)+kf(n) 如果我们假设每一项一一对应的话,f(n)就是一个等比数列,设为c*k^n。 代入差分方程,提取公因子,得到k^2=k+1,这个一元二次方程有两个根,k1=(1+sqrt(5))/2, k2=(1-sqrt(5))/2。 不过考虑到初始条件,貌似两个根都不对... 别急,再仔细看看差分方程。 显而易见如果f(n)和g(n)满足,那么它们的线性组合a*f(n)+b*g(n)也是满足的! 假设f(n)=c1*k1^n+c2*k2^n,代入1和2处的值,就可以得到这么个方程组 (如果你懒得算那个平方,也可以改为代入0和1处的值,f(0)=0) c1*k1+c2*k2=1 c1*k1^2+c2*k2^2=1 二元二次方程组是有唯一解的,就是c1=1/sqrt(5), c2=-1/sqrt(5)。 组装一下就可以得到最终的公式了,可以随便代入几个值看看对不对。 是不是很简单?

CF 1008 Div2

A 显然最终结果跟怎么操作无关,所以直接比较n*x是否等于sigma(a)即可。 B 猜测答案必然是1。 由于条件很弱,最终显然是引向n和n-1的二元环。 当k=1时,我们可以让所有的指向n,n指向n-1。这对于所有的奇数都是有效的。 k为偶数时可以颠倒一下,所有的指向n-1,n-1指向n。 C(DIV1A) 首先,排个序,方便处理。 你可能会认为a1或者其他奇数项是被删掉的那个数(记为x),但你会发现那样并不能保证x没有出现过。 但如果x是a2,那么x=a1+a3-a4+a5...,只要令偶数项为小的那些数,那么x>a1+a3>a1,构造成功。 D 显然我们要尽可能往乘法那边分配,并且要尽可能是大的乘法。 是否可以贪心按照最近的不平等位置进行决策呢?其实是的,因为只要遇到了乘法,你就可以把大于等于这条路线的人数全部放到对面去,即使遇到两次需要不同路线的情况,也不会影响到后面的决策。 所以只需要对于每一关,记录一下最近的不平等的位置和对应的正确选择即可。 E(DIV1B) 显然x和y具体是啥并不重要,重要的只是每一位是几个1,这个值可以是0-2。 这就等同于一个三进制的问题被强行挤压到了二进制之中,因此显然出现了损耗(进位)。 为了防止数据丢失,我们显然得问一个0。 接下来就很关键了,思考一下如果还有两次机会可以怎么做。 你会发现关键问题就是进位,因此必须构造一个不存在进位的情况,如果是4进制就不会出现进位了。 我们可以询问1010...和0101...,然后和0的答案相减,再取反,这样就消除了进位的问题。 好了,现在改成一次询问该怎么办? 其实1010...是不必要的,因为当你问了0101...之后,得出了所有偶数位,就可以从0的答案之中减去这些位,从而将奇数位隔开。 得到所有位之后就不必多说了。 TODO:FG DIV1DFG