题目链接:http://codeforces.com/contest/768/problem/B 题意:给你一个数n和区间l,r,每次都能把任意数拆成n/2,n%2,n/2三个数,直到变成0和1,问区间l,r里有多少个1 题解:明显最后生成的是对称的,所以只要考虑一半就行,但是这里的n,l,r很大,有2的50次,最后起码有2的50 次长所以dfs直接生成字符串是不行的也会超时,但是r-l才10的5次所以可以考虑一下二分.加上这题的对称,二分很 方便. 附上二分的代码.二分的是位置,l到r之间的位…