关注
第二题考完之后想到一个思路。本来的想着用异或来找操作的列(比特位),后来想到的方法似乎能通过,大家看看帮忙分析分析。
对于初始矩阵,对每列求和,统计1的个数,然后跟目标矩阵每列求和的结果对比(因为列的不会调换的,所以可以直接比较),如果相等,可以该列不用操作;否则,再判断两者相加是否等于N(N为行数,代表拨动该列的开关后,1的数量就相同)。
上面的条件并不完整,但是能排除错误的用例。在上面条件通过的基础上,再对两个矩阵每行进行求和,即求1的个数,然后排序(这一步可以抵消随意换行的操作)。排序后的序列相同,则两者可以相互转化;否则,输出 Impossible。
因为这里有很多列求和,行求和,所以用 Python 表示会更直白。这里写个伪码:
给定: mat1, mat2, N, L
过程:
colSum1 = sum(mat1, axis=0)
colSum2 = sum(mat2, axis=0)
rowSum1 = sum(mat1, axis=1)
rowSum2 = sum(mat2, axis=1)
cnt = 0
for i in range(L):
if colSum1[i] == comSum2[i]:
continue
else if colSum1[i] + comSum2[i] == N:
cnt += 1
else:
print("Impossible")
return
if sort(rowSum1) == sort(rowSum2):
print(cnt)
else:
print("Impossible")
欢迎大家提出意见~~~
查看原帖
点赞 2
相关推荐
11-10 15:33
门头沟学院 电子工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
127643次浏览 2144人参与
# 找不到实习会影响秋招吗 #
1398629次浏览 13625人参与
# 实习简历求拷打 #
19842次浏览 224人参与
# 哪些公司笔/面试难度大? #
6937次浏览 31人参与
# 考研人,我有话说 #
156275次浏览 1208人参与
# 秋招遇到的奇葩面试题 #
101117次浏览 416人参与
# 投格力的你,拿到offer了吗? #
154137次浏览 829人参与
# 作业帮求职进展汇总 #
84733次浏览 558人参与
# 秋招被挂春招仍然能投的公司 #
8510次浏览 110人参与
# 简历当中有水分算不算造假? #
154126次浏览 2250人参与
# 携程工作体验 #
18707次浏览 66人参与
# mt对你说过最有启发的一句话 #
40814次浏览 465人参与
# 秋招被确诊为…… #
277046次浏览 1583人参与
# 国庆前的秋招小结 #
265693次浏览 1718人参与
# 什么是优秀的实习经历 #
10592次浏览 236人参与
# 选实习,你更看重哪方面? #
16197次浏览 270人参与
# 你收到了团子的OC了吗 #
1483591次浏览 11811人参与
# 找不到好工作选择GAP真的丢人吗 #
93510次浏览 1006人参与
# 摸鱼被leader发现了怎么办 #
106232次浏览 670人参与
# 担心入职之后被发现很菜怎么办 #
267316次浏览 1137人参与