http://codeforces.com/contest/558/problem/C
题目大意是说,给定N个数,可以对任意数进行任意次两种操作,×2,和/2(整除)
问最少操作多少次,可以让所有数相等。
嘛,前半个小时A掉了前两个提,d E貌似都是线段树。。并不会。。。就一直搞C。。。。
然而并没有做出来。位运算是什么神奇的黑魔法。
转载一份题解:http://blog.csdn.net/qq_24451605/article/details/46906813
思路是声明两个数组,一个数组表示到达i的步数,另一个数组表示n个数中能够达到i的数的个数(包括本身)
/************************************************************************* > File Name: code/#312C.cpp > Author: 111qqz > Email: rkz2013@126.com > Created Time: Mon 20 Jul 2015 11:36:50 PM CST ************************************************************************/#include #include #include #include #include #include #include #include