XOR Triangle
题意翻译
## 题目描述
给你一个数 $n$,问:有多少对数 $0\leq a,b,c \leq n$ 满足 $a \oplus b,b \oplus c,a \oplus c$ 。三个数字构成了一个非退化三角形,也就是两条短边之和大于第三边的长度。$\oplus$ 表示二进制下的异或操作。
## 输入格式
一个数字 $n$,表示给定的 n 在二进制下的表示。
## 输出格式
输出答案 mod 998244353。
题目描述
You are given a positive integer $ n $ . Since $ n $ may be very large, you are given its binary representation.
You should compute the number of triples $ (a,b,c) $ with $ 0 \leq a,b,c \leq n $ such that $ a \oplus b $ , $ b \oplus c $ , and $ a \oplus c $ are the sides of a non-degenerate triangle.
Here, $ \oplus $ denotes the [bitwise XOR operation](https://en.wikipedia.org/wiki/Bitwise_operation#XOR).
You should output the answer modulo $ 998\,244\,353 $ .
Three positive values $ x $ , $ y $ , and $ z $ are the sides of a non-degenerate triangle if and only if $ x+y>z $ , $ x+z>y $ , and $ y+z>x $ .
输入输出格式
输入格式
The first and only line contains the binary representation of an integer $ n $ ( $ 0 < n < 2^{200\,000} $ ) without leading zeros.
For example, the string 10 is the binary representation of the number $ 2 $ , while the string 1010 represents the number $ 10 $ .
输出格式
Print one integer — the number of triples $ (a,b,c) $ satisfying the conditions described in the statement modulo $ 998\,244\,353 $ .
输入输出样例
输入样例 #1
101
输出样例 #1
12
输入样例 #2
1110
输出样例 #2
780
输入样例 #3
11011111101010010
输出样例 #3
141427753
说明
In the first test case, $ 101_2=5 $ .
- The triple $ (a, b, c) = (0, 3, 5) $ is valid because $ (a\oplus b, b\oplus c, c\oplus a) = (3, 6, 5) $ are the sides of a non-degenerate triangle.
- The triple $ (a, b, c) = (1, 2, 4) $ is valid because $ (a\oplus b, b\oplus c, c\oplus a) = (3, 6, 5) $ are the sides of a non-degenerate triangle.
The $ 6 $ permutations of each of these two triples are all the valid triples, thus the answer is $ 12 $ .
In the third test case, $ 11\,011\,111\,101\,010\,010_2=114\,514 $ . The full answer (before taking the modulo) is $ 1\,466\,408\,118\,808\,164 $ .