推广
大厂真题OJ:Codefun2000.com
题目大意:
t组询问,每次询问一个数n.问你有多少个三元组 ( a , b , c ) (a,b,c) (a,b,c)满足:
1. a , b , c ∈ [ 1 , n ] a,b,c \in [1,n] a,b,c∈[1,n]
2. a ⊕ b ⊕ c = 0 a \oplus b \oplus c = 0 a⊕b⊕c=0
3. a , b , c a,b,c a,b,c构成三角形
思路:
其实有一个常见的数位dp套路:多个数同时跑数位dp,可见例题:
1.dh的帽子
2.2020ICPC上海C
单纯枚举两个数 a , b a,b a,b,无法保证 a , b , a ⊕ b a,b,a\oplus b a,b,a⊕b这三个哪个是最大值,没办法判断条件3.所以枚举的时候要保证一些条件:
数位dp,枚举最大值 a a a和另外一个值 b b b.满足以下条件:
1. a ≤ n 1.a \leq n 1.a≤