CF2135E2 Beyond the Palindrome (Hard Version)
Description
**This is the hard version of the problem. The difference between the versions is that in this version, $n\le 2\cdot 10^7$, and the sum of $n$ over all test cases does not exceed $10^8$. You can hack only if you solved all versions of this problem.**
For a binary string$^{\text{∗}}$ $r$, we define $f(r)$ as the result of the following process:
1. Delete all $\texttt{10}$ substrings$^{\text{†}}$ simultaneously from $r$;
2. Repeat the above operation until there are no $\texttt{10}$ substrings in $r$.
For example, $f(\mathtt{100110001})=\mathtt{001}$ because $r$ changes as follows: $\mathtt{\underline{10}01\underline{10}001}\to \mathtt{0\underline{10}01}\to\mathtt{001}$.
We call a binary string $s$ almost-palindrome if and only if $f(s)=f(\mathrm{rev}(s))^{\text{‡}}$.
Aquawave has given you an integer $n$. You have to help him find the number of distinct almost-palindrome binary strings of length $n$, modulo $998\,244\,353$.
$^{\text{∗}}$A binary string is a string where each character is either $\texttt{0}$ or $\texttt{1}$.
$^{\text{†}}$A string $a$ is a substring of a string $b$ if $a$ can be obtained from $b$ by the deletion of several (possibly, zero or all) characters from the beginning and several (possibly, zero or all) characters from the end.
$^{\text{‡}}\mathrm{rev}(s)$ is the string obtained by writing $s$ from right to left. For example, $\mathrm{rev(\mathtt{10100})=\mathtt{00101}}$.
Input Format
Each test contains multiple test cases. The first line contains the number of test cases $t$ ($1 \le t \le 10^4$). The description of the test cases follows.
The only line of each test case contains a single integer $n$ ($1\le n\le 2\cdot 10^7$) — the length of the binary strings.
It is guaranteed that the sum of $n$ over all test cases does not exceed $10^8$.
Output Format
For each test case, output a single integer — the number of distinct almost-palindrome binary strings of length $n$, modulo $998\,244\,353$.
Explanation/Hint
In the first test case, all binary strings of length $1$ are almost-palindrome.
In the second test case, all almost-palindrome binary strings of length $2$ are $\mathtt{00}$ and $\mathtt{11}$.
In the third test case, all almost-palindrome binary strings of length $3$ are $\mathtt{000}$, $\mathtt{010}$, $\mathtt{101}$, and $\mathtt{111}$.