拼多多8.2笔试第二题
有像我一样用穷举法做的吗?
敲代码的时候边写边笑,结果竟然AC了就很迷。
N = int(input())
nums = []
for i in range(N):
nums.append(list(int(x) for x in input().split()))
def trans(num):
i = num.index(1)
if i == 0:
pass
elif i == 1:
num[0], num[1], num[2], num[3] = num[1], num[0], num[3], num[2]
elif i % 2 == 0:
num[0], num[1], num[i], num[i + 1] = \
num[i], num[i + 1], num[1], num[0]
else:
num[0], num[1], num[i - 1], num[i] = \
num[i], num[i-1], num[0], num[1]
l2 = min(num[2:])
i = num.index(l2)
if i == 2:
pass
elif i == 3:
num[2], num[3], num[4], num[5] = num[3], num[2], num[5], num[4]
elif i == 4:
num[2], num[3], num[4], num[5] = num[4], num[5], num[3], num[2]
else:
num[2], num[3], num[4], num[5] = num[5], num[4], num[2], num[3]
return num
d = {}
for i in nums:
i = tuple(trans(i))
d[i] = d.get(i, 0) + 1
M = len(d)
res = list(d.values())
res.sort(reverse = True)
print(M)
print(*res) trans函数可以把一个骰子转化为“标准型”,所以可以用字典直接统计数量。
正常做法是咋样啊?
#笔试题目##拼多多#
