一个都知道的性质:一个数能被3整除,那么其数位和也能被3整除。 首先能想到的就是统计每个数 出现的次数 ,然后从高位枚举, 那么对于数,可以选的最大数量就是 cnt为目前还需要多少个数字,但是可能刚好选取 个, 最后的答案不能被3整除, 所以我们枚举选的个数为,因为它们都是,肯定能找到答案(前提是有解) 最后直接dfs搜一遍所有情况,取一个最大的情况。还有就是前导0要判一下。 从 dfs一遍,每个位置最多个可能,复杂度 code #pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; const i...