第一题
0
解题思路:
数据范围很大,肯定得找规律。
当n=1时,0,1,结果为0
当n=2时,00,01,10,11,结果为1
当n=3时,000,001,010,011,100,101,110,111,结果为4
设当前为n,结果为a(n)。
可以看出来,n比n-1多一位最高位,如果最高位加的是0,就等于a(n-1),如果最高位加的是1,就是n-1长度中最高位中1的个数(即2^(n-2)个)加上a(n-1)。
递推公式:
a(n)=2*(a(n-1))+2^(n-2)
得到通项公式
a(n)=(n-1)*(2^(n-2))
然后用快速幂即可。
第二题
解题思路:
遍历所有节点。用哈希表记录已走过的节点,当下一个节点颜色与当前节点颜色不同时,答案加一。