当前位置: 首页 > news >正文

小米 1012

1 均衡
对数组相邻的两个数取反,求取反若干次后的数组的最大和
偶数个负数都可以取反成为全正数,奇数次可以只剩一个最小的负数

n = int(input())
a = list(map(int, input().split()))
res = 0
less_cnt = 0
mi = float('inf')
for i in range(n):mi = min(mi, abs(a[i]))if a[i] <= 0:less_cnt += 1res += abs(a[i])
if less_cnt % 2 == 1:res -= mi * 2
print(res)

2 宝石

from typing import Listclass Node:def __init__(self, key=0, left=None, right=None):self.key = keyself.left = leftself.right = rightclass Stones:def __init__(self, n):self.dummy = Node()self.tail = Node()self.nodeMap = {}cur = self.dummyfor i in range(1, n + 1):newNode = Node(i, cur)self.nodeMap[i] = newNodecur.right = newNodecur = cur.rightcur.right = self.tailself.tail.left = curdef move(self, a, b, op):node_a = self.nodeMap[a]node_b = self.nodeMap[b]self.delete(node_a)if op == 0:self.insert(node_a, node_b)else:self.insert(node_a, node_b.right)def delete(self, node: Node):pre = node.leftnxt = node.rightpre.right = nxtnxt.left = predef insert(self, a_node: Node, b_node: Node):pre = b_node.leftpre.right = a_nodea_node.left = prea_node.right = b_nodeb_node.left = a_nodedef getIdx(self) -> List[int]:res = []cur = self.dummy.rightwhile cur != self.tail:res.append(cur.key)cur = cur.rightreturn resn, q = map(int, input().split())
op_list = list(map(int, input().split()))
stones = Stones(n)
for i in range(0, len(op_list), 3):a, b, op = op_list[i], op_list[i + 1], op_list[i + 2]stones.move(a, b, op)
res = stones.getIdx()
print(" ".join(map(str, res)))

http://www.mrgr.cn/news/48707.html

相关文章:

  • 三菱FX3UPLC单速定位- DRVI指令/DRVA指令
  • Java消息摘要:MD5验证数据完整性、密码的加密与校验
  • 《OpenCV计算机视觉》—— 人脸识别
  • 关于上传到GPU:这个地方之前一直没有弄清楚
  • 中国剩余定理 C++
  • AI测试入门:基于 RAG 的 LLM 应用程序的测试方法「详细介绍」
  • Linux常见指令
  • 手撕数据结构 —— 带头双向循环链表(C语言讲解)
  • 链接防封(maybe)
  • 01 数据结构基础:数据的逻辑结构(集合、线性、树形、网状)或(线性与非线性)、数据的存储结构(顺序、链式、索引、散列)、数据的运算
  • MySQL数据库管理全面指南:从基础操作到高级管理
  • 组合优化_初识
  • 跟李沐学AI:Transformer
  • 守护线程详解!
  • 线程池 jvm web
  • zookeeper kafka集群配置
  • head和tail命令解析
  • JavaSE——认识异常
  • LDR6500一拖三快充线方案
  • 【秋招笔试】10.12小米(已改编)秋招-三语言题解