首页 > 小柒的行列改写
头像 Xuan2333
发表于 2025-12-19 12:34:21
思路每个单元格 (i,j) 的最终值为 max(r[i], c[j]),总和为所有 max(r[i], c[j]) 的累加。对列数组 c 排序并计算前缀和,方便快速统计 “小于等于当前行值 r[i] 的列数” 和 “大于当前行值的列的总和”。遍历每个行值 r[i],通过二分查找找到 c 中第一个大于 展开全文
头像 Pek
发表于 2026-02-21 20:48:07
既然是贪心和优先队列,怎么能没有优先队列的题解呢;简单解释一下逻辑,将r和c放入pqr和pqc两个优先队列,比较哪个更小就优先使用,每次使用行会覆盖先前使用的列的元素和,每次使用列会覆盖先前使用行的总和,那么只需要开一个gc和gr来统计被覆盖行列总和就行了,sum就先加上对用行列带来的数值改变再减去 展开全文
头像 Drink0318
发表于 2025-12-12 15:51:10
def main(): import sys input = sys.stdin.read().split() ptr = 0 n = int(input[ptr]) ptr += 1 m = int(input[ptr]) ptr += 1 展开全文
头像 yaozefeng
发表于 2026-01-22 11:37:54
拉了一大坨的代码,然后一遍过,简直快哉快哉啊齁齁齁齁因为每个行与列只会输入一次,对于图中[i][j]点只有两种情况:r[i]的值 或 c[j]的值所以先输入全部的ri,ci,用结构体存储其三项信息:1.值 2.行或列的状态 3.对应的下标sort排序,值大的排前面,先填充建立变量 rnum和cn 展开全文