有像我一样用穷举法做的吗?
敲代码的时候边写边笑,结果竟然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函数可以把一个骰子转化为“标准型”,所以可以用字典直接统计数量。
正常做法是咋样啊?
全部评论
(5) 回帖