链接:http://codeforces.com/contest/1003
题型:
题意:找段时最高温,以平均温度计
原因:第一次写的时候忽略了段时是连续的...我也是天才...后面用了二维数组第一维存段时的开端
D. Coins and Queries
题型:贪心
题意:给定一个集合p,集合中每个数都确定为 2 次幂 ,询问对正整数q,在p中是否能找到各元素和为q的最小子集,若存在,输出子集的size,不存在则输出-1。
题解:https://blog.youkuaiyun.com/ZscDst/article/details/80927194
① 由二进制可知,因为所有数字都是2的次幂,所以不存在我们选了C,而无法选B导致错过正确答案的情况。所以就是一个贪心,排序后从大到小贪心即可。
② 防止TLE,要用map存下同一个数出现的个数。按照题目范围确定循环长度。
盲点:除了上述两点
① 位运算 1<<30 位运算,左移30 即 1 乘 30次 2 。
② int类型在内存中占4个字节,也就是用32位二进制表示,不会爆 int 。
int类型正数上限二进制表示为0111 1111 1111 1111即(2^32)-1,表示0的符号位是0(即最高位是0):0000 0000 0000 0000
由于0已经被正数这一边表示了,所以负数的1000 0000 0000 0000就可以用来表示-2^32