AT_joig2025_e.神経衰弱 2 (Pair Matching 2)

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

桌面上横向排列着 2N2N 张卡牌,从左到右依次编号为 1,2,…,2N1, 2, \dots, 2N。卡牌 ii(1≤i≤2N1 \leq i \leq 2N)上写有一个整数 AiA_i。对于每个 x=1,2,…,Nx=1,2,\dots,N,数字 xx 恰好出现在两张卡牌上。

比太郎将用这些卡牌进行名为神经衰弱的游戏。比太郎可以用左手和右手各持一张卡牌。

“神经衰弱”游戏的步骤如下:

  • 按照 i=1,2,…,2Ni=1,2,\dots,2N 的顺序,依次进行以下操作:
    1. 比太郎选择是否要拿起第 ii 张卡牌。如果不拿,则跳过第2~5步。
    2. 如果比太郎手中有写有 AiA_i 的卡牌,则他手中的那张卡牌与桌上的第 ii 张卡牌都会消失,比太郎获得 VAiV_{A_i} 的分数。
    3. 如果比太郎左手持有卡牌,则弃掉左手的卡牌。
    4. 如果比太郎右手持有卡牌,则将其移到左手。
    5. 若第 ii 张卡牌还在(未消失),比太郎用右手拿起第 ii 张卡牌。

通过上述过程获得的分数之和就是比太郎的最终得分。比太郎想知道,在本局游戏中,他最多能获得多少分。

给定卡牌的排列和每个整数分数的信息,请你编程输出比太郎能获得的最大分数。

输入格式

输入按以下格式给出:

NN A1A_1 A2A_2 ⋯\cdots A2NA_{2N} V1V_1 V2V_2 ⋯\cdots VNV_N

输出格式

输出比太郎能够获得的最大分数。

输入输出样例

  • 输入#1

    3
    1 2 3 1 2 3
    5 2 8

    输出#1

    13
  • 输入#2

    4
    1 2 1 2 3 4 4 3
    39 62 55 21

    输出#2

    156
  • 输入#3

    10
    7 2 5 8 4 10 8 2 7 5 6 3 4 1 10 9 9 1 6 3
    185163245 734376902 849123714 97860221 844860642 689054872 471545587 607735137 664633003 831663829

    输出#3

    3117416130
  • 输入#4

    15
    4 3 8 3 10 15 14 1 12 4 13 1 6 7 10 15 2 8 12 2 9 11 11 13 5 9 14 5 6 7
    1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

    输出#4

    6

说明/提示

子任务

  1. (8 分)(A1,A2,…,AN)=(1,2,…,N)(A_1, A_2, \dots, A_N) = (1, 2, \dots, N),N≤5000N \leq 5000。
  2. (12 分)(A1,A2,…,AN)=(1,2,…,N)(A_1, A_2, \dots, A_N) = (1, 2, \dots, N)。
  3. (6 分)N≤9N \leq 9。
  4. (9 分)N≤18N \leq 18。
  5. (16 分)N≤300N \leq 300。
  6. (18 分)N≤3 000N \leq 3\,000。
  7. (18 分)N≤150 000N \leq 150\,000,Vk=1V_k = 1(1≤k≤N1 \leq k \leq N)。
  8. (8 分)N≤150 000N \leq 150\,000。
  9. (5 分)无其他额外限制。

样例解释 1

比太郎可以通过如下操作获得 1313 分:

  1. 拿起第1张卡牌。此卡牌写着数字1,比太郎手里没有写着1的卡牌,因此没有卡牌消失。此时右手持第1张卡牌。
  2. 跳过第2张卡牌,不拿。
  3. 拿起第3张卡牌。该卡牌写着数字3,比太郎手里没有写着3的卡牌。此时左手持第1张,右手持第3张卡牌。
  4. 拿起第4张卡牌。该卡牌写着数字1,比太郎左手持有写着1的第1张卡牌。左手的第1张卡牌和桌上第4张卡牌消失,比太郎获得 V1=5V_1=5 分。之后左手仅持第3张卡牌。
  5. 跳过第5张卡牌,不拿。
  6. 拿起第6张卡牌。该卡牌写着数字3,比太郎左手持有写着3的第3张卡牌。左手的第3张卡牌和桌上第6张卡牌消失,比太郎获得 V3=8V_3=8 分。此后双手皆无卡牌。

比太郎无法获得大于 1313 的分数,因此输出 1313。

本样例满足子任务 1,2,3,4,5,6,8,91,2,3,4,5,6,8,9 的约束。

样例解释 2

比太郎可以选择依次拿起第 1,2,3,4,5,6,81,2,3,4,5,6,8 张卡牌,获得分数 V1+V2+V3=156V_1+V_2+V_3=156。

比太郎无法获得大于 156156 的分数,因此输出 156156。

本样例满足子任务 3,4,5,6,8,93,4,5,6,8,9 的约束。

样例解释 3

本输入样例满足子任务 4,5,6,8,94,5,6,8,9 的约束。

样例解释 4

本输入样例满足子任务 4,5,6,7,8,94,5,6,7,8,9 的约束。

数据范围与限制

  • 1≤N≤400 0001 \leq N \leq 400\,000。
  • (A1,A2,…,A2N)(A_1, A_2, \dots, A_{2N}) 是 (1,1,2,2,…,N,N)(1,1,2,2,\dots,N,N) 的一个排列。
  • 1≤Vk≤1091 \leq V_k \leq 10^9(1≤k≤N1 \leq k \leq N)。
  • 所有输入均为整数。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页