在一个古老的国度,这个国家的人并不懂得进位,但是对取模情有独钟,因此诞生了一个经典的问题,给出两个在m进制下含有n位的数字,你 可以分别将这两个数各位上的数字重新排列,然后将两个数按位对应相加并分别对m取模,这样显然可以得到一个新的m进制下的n位数(可能存 在前导0),但是这个结果是不唯一的,问题来了,按照这样的操作,能够得到的最大的m进制下的数字是多少呢。 

区块链毕设网qklbishe.com为您提供问题的解答

在一个古老的国度,这个国家的人并不懂得进位,但是对取模情有独钟,因此诞生了一个经典的问题,给出两个在m进制下含有n位的数字,你 可以分别将这两个数各位上的数字重新排列,然后将两个数按位对应相加并分别对m取模,这样显然可以得到一个新的m进制下的n位数(可能存 在前导0),但是这个结果是不唯一的,问题来了,按照这样的操作,能够得到的最大的m进制下的数字是多少呢。 

import collections def getMaxValue(dict0,dict1,m,n):     if len(dict0)==0&nbs***bsp;len(dict1)==0: return " "     for digit in range(m):         for i in dict0:             for j in dict1:                 if (i+j)%m == m-1-digit:                     curValue = ''                     deleteValue = min(dict0[i],dict1[j] )                     for _ in range(min(dict0[i],dict1[j] )):                         curValue = curValue +str(m-1-digit) + " "                     dict0[i] = dict0[i] - deleteValue                     dict1[j] = dict1[j]  - deleteValue                     if dict0[i] == 0: del dict0[i]                     if dict1[j] == 0: del dict1[j]                     return curValue + getMaxValue(dict0,dict1,m,n)     return 0  n,m = map(int,input().split()) s0 = list(map(int,input().split())) s1 = list(map(int,input().split())) dict0,dict1 = collections.Counter(s0),collections.Counter(s1) ans = getMaxValue(dict0,dict1,m,n)  print(ans)    

费劲半天还是只能通过六组,给后来者一点引导把。希望能有大佬来优化一下我的代码

29:03

以上就是关于问题在一个古老的国度,这个国家的人并不懂得进位,但是对取模情有独钟,因此诞生了一个经典的问题,给出两个在m进制下含有n位的数字,你 可以分别将这两个数各位上的数字重新排列,然后将两个数按位对应相加并分别对m取模,这样显然可以得到一个新的m进制下的n位数(可能存 在前导0),但是这个结果是不唯一的,问题来了,按照这样的操作,能够得到的最大的m进制下的数字是多少呢。 的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 在一个古老的国度,这个国家的人并不懂得进位,但是对取模情有独钟,因此诞生了一个经典的问题,给出两个在m进制下含有n位的数字,你 可以分别将这两个数各位上的数字重新排列,然后将两个数按位对应相加并分别对m取模,这样显然可以得到一个新的m进制下的n位数(可能存 在前导0),但是这个结果是不唯一的,问题来了,按照这样的操作,能够得到的最大的m进制下的数字是多少呢。