第一题:
给n个数组,计算每个数组里面的元素有多少个1,相同1次数为一类,计算每个数组有几类。
思路:减1做&运算。注意将答案放在数组里面分别打印,否则报错。
#coding=utf-8
# 本题为考试多行输入输出规范示例,无需提交,不计分。
import sys
def count_one(nums):
res = []
for num in nums:
count = 0
if num < 0:
num = num & 0xffffffff
while num:
num = (num - 1) & num
count += 1
res.append(count)
return len(set(res))
if __name__ == "__main__":
# 读取第一行的n
g = int(sys.stdin.readline().strip())
ans = []
# 例子个数
for i in range(g):
n = int(sys.stdin.readline().strip())
line = sys.stdin.readline().strip()
line = list(map(int, line.split()))
ans.append(count_one(line))
for i in ans:
print(i)
第二题:
游泳池,一个进水管和一个排水管,分别每