日常废话: 完了高一开学第二天作业就写不完了药丸(其实第一天就写不完了) 传传传传传送 显然爆搜肯定过不了这道题但是有60分 我们注意到在[1,n]中,有着相同的1的个数的数有很多.若有x个数有i个1,则对答案产生的贡献是\(i^x\).考虑到\(n\leq10^{50}\),所以最多只有50个1,看起来能够接受.这样问题就转化成求1~n内,二进制表示中有i个1的数的个数,可以用数位dp求. 关于\(i^x\),用快速幂搞一搞就好了. 数位dp using namespace std; type…