#P246. 异或方程

异或方程

题目背景

⊕\oplus 代表异或(xor)运算,运算规则为:

  • 当只有一位比特参与运算时,0⊕0=00\oplus0=0,0⊕1=10\oplus1=1,1⊕0=11\oplus0=1,1⊕1=01\oplus1=0(相同为00,相异为11);
  • 当有多位比特参与运算时,对每位比特分别取异或运算,如 0101⊕1011=11100101\oplus 1011=1110;

题目描述

给定一个正整数 nn,求 00 到 2n−12^n-1 中有多少个数 xx 满足以下方程:

x⊕2x⊕3x=0x \oplus 2x \oplus 3x=0

由于满足条件的 xx 可能很多,请将方案数对 109+910^9+9 取模。

输入格式

单个正整数:表示 nn。

输出格式

单个自然数:表示方案数对 109+910^9+9 取模的余数。

3
5

样例解释 1

满足方程的数字有:000,001,010,100,101

数据范围

  • 对于 50%50\% 的数据,1≤n≤101\leq n\leq 10;
  • 对于 100%100\% 的数据,1≤n≤1000001\leq n\leq 100000。