IOI 2022 Day 1 Task1

2023-10-20 12:10
文章标签 day 2022 task1 ioi

本文主要是介绍IOI 2022 Day 1 Task1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


Task 1


鲶⻥塘(fish)
Bu Dengklek 有⼀个鲶⻥塘。 这个鲶⻥塘是由 N × N 个⽹格单元构成的池塘。 每个单元都是相同⼤ ⼩的正⽅形。 ⽹格各列⾃西向东编号为从 0 到 N − 1,各⾏⾃南向北编号为从 0 到 N − 1。 我们把坐 落在⽹格第 c 列第 r ⾏处(0 ≤ c ≤ N − 1,0 ≤ r ≤ N − 1)的单元记为单元 (c, r)。 池塘⾥总共有 M 条鲶⻥,编号为从 0 到 M − 1,分别位于不同的单元中。对每个满⾜ 0 ≤ i ≤ M − 1 的 i,鲶⻥ i 在单元 (X[i],Y [i]) 中,其重量为 W[i] 克。 Bu Dengklek 想造些⻓堤来抓鲶⻥。 在第 c 列中⻓度为 k 的⻓堤(对于所有 0 ≤ c ≤ N − 1 和 1 ≤ k ≤ N),是⼀个从第 0 ⾏跨到第 k − 1 ⾏的矩形,盖住单元 (c, 0),(c, 1),…,(c, k − 1)。对于每 ⼀列,Bu Dengklek 可以按照她⾃⼰选择的某个⻓度造⻓堤,也可以不造。 鲶⻥ i (对所有满⾜ 0 ≤ i ≤ M − 1 的 i)能被抓住,如果有某个⻓堤紧邻它的西侧或东侧,⽽且没有 ⻓堤盖住它所在的单元;也就是说,如果 单元 (X[i] − 1,Y [i]) 或 (X[i] + 1,Y [i]) 中 ⾄少有⼀个 被某个⻓堤盖住,⽽且 没有⻓堤盖住单元 (X[i],Y [i])。 例如,考虑尺⼨为 N = 5,有 M = 4 条鲶⻥的池塘: 鲶⻥ 0 在单元 (0, 2) 中,重量为 5 克。 鲶⻥ 1 在单元 (1, 1) 中,重量为 2 克。 鲶⻥ 2 在单元 (4, 4) 中,重量为 1 克。 鲶⻥ 3 在单元 (3, 3) 中,重量为 3 克。 Bu Dengklek 可以这样来造⻓堤:
在这里插入图片描述
单元中的数字表⽰该单元中鲶⻥的重量。 阴影单元被⻓堤盖住。 在该场景中,鲶⻥ 0(在单元 (0, 2) 中)和鲶⻥ 3(在单元 (3, 3) 中)能被抓住。 鲶⻥ 1(在单元 (1, 1) 中)没被抓住,因为有⼀个⻓堤盖住 了它所在的单元;鲶⻥ 2(在单元 (4, 4) 中)没被抓住,因为没有⻓堤紧邻它的西侧或东侧。 Bu Dengklek 希望造出来的⻓堤能让被抓住的鲶⻥的总重量尽量⼤。 你的任务是求出 Bu Dengklek 通
过造⻓堤能抓住的鲶⻥的最⼤总重量。 实现细节 你需要实现下⾯的函数:

int64 max_weights(int N, int M, int[] X, int[] Y, int[] W)

N:池塘的尺⼨。
M:鲶⻥的数量。
X, Y :⻓度为 M 的两个数组,给出鲶⻥的位置。
W:⻓度为 M 的数组,给出鲶⻥的重量。 该函数需要返回⼀个整数,表⽰ Bu Dengklek 通过造⻓堤能抓住的鲶⻥的最⼤总重量。 该函数将被恰好调⽤⼀次。

例⼦

考虑如下调⽤:

max_weights(5, 4, [0, 1, 4, 3], [2, 1, 4, 3], [5, 2, 1, 3])

该例⼦的解释请⻅前⾯的题⾯。
在造完所述的⻓堤后,Bu Dengklek 能抓住鲶⻥ 0 和 3,其总重量为 5 + 3 = 8 克。 因为⽆法造出能够抓住总重量超过 8 克的鲶⻥的⻓堤,函数应当返回 8。

约束条件

2 ≤ N ≤ 100 000
1 ≤ M ≤ 300 000
0 ≤ X[i] ≤ N − 1,0 ≤ Y [i] ≤ N − 1(对所有满⾜ 0 ≤ i ≤ M − 1 的 i)
1 ≤ W[i] ≤ 109(对所有满⾜ 0 ≤ i ≤ M − 1 的 i)
任意两条鲶⻥都不会在同⼀单元中。 换句话说,X[i] ≠ X[j] 或 Y [i] ≠ Y [j](对于所有满⾜ 0 ≤ i < j ≤ M − 1 的 i 和 j)。

⼦任务
  1. (3 分) X[i] 是偶数(对于所有满⾜ 0 ≤ i ≤ M − 1 的 i)
  2. (6 分) X[i] ≤ 1(对于所有满⾜ 0 ≤ i ≤ M − 1 的 i)
  3. (9 分) Y [i] = 0(对于所有满⾜ 0 ≤ i ≤ M − 1 的 i)
  4. (14 分) N ≤ 300,Y [i] ≤ 8(对于所有满⾜ 0 ≤ i ≤ M − 1 的 i)
  5. (21 分) N ≤ 300
  6. (17 分) N ≤ 3000
  7. (14 分) 在每列中⾄多有 2 条鲶⻥。
  8. (16 分) 没有额外限制。
评测程序示例

评测程序⽰例读取如下格式的输⼊:
第 1 ⾏:N M
第 2 + i ⾏(0 ≤ i ≤ M − 1):X[i] Y [i] W[i]
评测程序⽰例将按照如下格式打印你的答案:
第 1 ⾏:max_weights 的返回值

这篇关于IOI 2022 Day 1 Task1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/247021

相关文章

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

Linux基础入门 --9 DAY

文本处理工具之神vim         vi和vim简介 一、vi编辑器 vi是Unix及类Unix系统(如Linux)下最基本的文本编辑器,全称为“visual interface”,即视觉界面。尽管其名称中包含“visual”,但vi编辑器实际上工作在字符模式下,并不提供图形界面。vi编辑器以其强大的功能和灵活性著称,是Linux系统中不可或缺的工具之一。 vi编辑器具有三种主要的工作模

day-50 求出最长好子序列 I

思路 二维dp,dp[i][h]表示nums[i] 结尾,且有不超过 h 个下标满足条件的最长好子序列的长度(0<=h<=k),二维数组dp初始值全为1 解题过程 状态转换方程: 1.nums[i]==nums[j],dp[i,h]=Math.max(dp[i,h],dp[j,h]+1) 2.nums[i]!=nums[j],dp[i,h]=Math.max(dp[i,h],dp[j,h-1

[Day 73] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

AI在健康管理中的應用實例 1. 引言 隨著健康管理需求的提升,人工智能(AI)在該領域的應用越來越普遍。AI可以幫助醫療機構提升效率、精準診斷疾病、個性化治療方案,以及進行健康數據分析,從而改善病患的健康狀況。這篇文章將探討AI如何應用於健康管理,並通過具體代碼示例說明其技術實現。 2. AI在健康管理中的主要應用場景 個性化健康建議:通過分析用戶的健康數據,如飲食、運動、睡眠等,AI可

Vue day-03

目录 Vue常用特性 一.响应更新 1. 1 v-for更新监测 1.2 v-for就地更新 1.3 什么是虚拟DOM 1.4 diff算法更新虚拟DOM 总结:key值的作用和注意点: 二.过滤器 2.1 vue过滤器-定义使用 2.2 vue过滤器-传参和多过滤器 三. 计算属性(computed) 3.1 计算属性-定义使用 3.2 计算属性-缓存 3.3 计算属

用Python实现时间序列模型实战——Day 14: 向量自回归模型 (VAR) 与向量误差修正模型 (VECM)

一、学习内容 1. 向量自回归模型 (VAR) 的基本概念与应用 向量自回归模型 (VAR) 是多元时间序列分析中的一种模型,用于捕捉多个变量之间的相互依赖关系。与单变量自回归模型不同,VAR 模型将多个时间序列作为向量输入,同时对这些变量进行回归分析。 VAR 模型的一般形式为: 其中: ​ 是时间  的变量向量。 是常数向量。​ 是每个时间滞后的回归系数矩阵。​ 是误差项向量,假

Linux基础入门 --8 DAY

文件权限管理 设置文件的所有者chown         格式: chown [OPTION]... [OWNER][:[GROUP]] FILE... chown [OPTION]... --reference=RFILE FILE...         示例:  chown admin(所有者):admin(所属组)f1.txt chown admin(所有者).admin(

上海大学《2022年836+915自动控制原理真题及答案》 (完整版)

Part1:2022年上海大学真题题目 学硕836 专硕915 Part2:2022年上海大学真题答案 学硕836 专硕915

[Day 72] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

區塊鏈在跨境支付中的應用 跨境支付一直是全球經濟中極具挑戰的領域。傳統的跨境支付系統通常需要數天時間來處理交易,涉及的中間機構多且手續費昂貴。然而,區塊鏈技術的出現為解決這些問題提供了一條嶄新的途徑。本文將探討區塊鏈在跨境支付中的應用,並通過代碼示例展示如何使用區塊鏈技術來優化跨境支付流程。 1. 區塊鏈在跨境支付中的優勢 區塊鏈技術具有去中心化、透明、高效和安全等特性,使其在跨境支付領域具

代码随想录Day 36|滑铁卢了,leetcode题目:1049.最后一块石头的重量、494.目标和、474.一和零

提示:DDU,供自己复习使用。欢迎大家前来讨论~ 文章目录 动态规划一、题目题目一:1049.最后一块石头的重量II解题思路: 题目二:494.目标和动态规划 (二维dp数组)#动态规划 (一维dp数组) 题目三: 474.一和零解题思路: 总结 动态规划 有点难了,之前差的有点多,找时间补 一、题目 题目一:1049.最后一块石头的重量II leetcode题目链接