AT_arc167_c.[ARC167C] MST on Line++

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

给定正整数 N,KN,K 以及一个长度为 NN 的正整数序列 A=(A1,A2,…,AN)A=(A_{1},A_{2},\dots,A_{N})。

对于 $ (1,2,\dots,N) $ 的一个排列 P=(P1,P2,…,PN)P=(P_{1},P_{2},\dots,P_{N}),我们考虑如下的“问题 MST on Line”,并将其答案记为 f(P)f(P)。

问题 MST on Line

有一个无向带权图 GG,包含 NN 个顶点,顶点编号为 11 到 NN。对于任意满足 1≤i<j≤N1\leq i<j\leq N 的整数对 (i,j)(i,j),有如下规则:

  • 如果 j−i≤Kj-i\leq K,则在顶点 ii 和顶点 jj 之间存在一条边,该边的权值为 max⁡(APi,APj)\max(A_{P_{i}},A_{P_{j}})。
  • 如果 j−i>Kj-i>K,则顶点 ii 和顶点 jj 之间没有边。

请计算图 GG 的最小生成树的所有边权之和。

请你求出所有 $ (1,2,\dots,N) $ 的排列 P=(P1,P2,…,PN)P=(P_{1},P_{2},\dots,P_{N}) 对应的 f(P)f(P) 之和,并对 998244353998244353 取模后输出。

输入格式

输入通过标准输入给出,格式如下:

NN KK A1A_{1} A2A_{2} ⋯\cdots ANA_{N}

输出格式

请输出答案。

输入输出样例

  • 输入#1

    5 2
    3 4 5 2 1

    输出#1

    1740
  • 输入#2

    2 1
    167 924

    输出#2

    1848
  • 输入#3

    12 9
    22847 98332 854 68844 81080 46058 40949 62493 76561 52907 88628 99740

    输出#3

    660459584

说明/提示

限制条件

  • 1≤K<N≤50001\leq K<N\leq 5000
  • 1≤Ai≤1091\leq A_{i}\leq 10^{9}
  • 输入均为整数

样例解释 1

当 P=(1,2,3,4,5)P=(1,2,3,4,5) 时,存在如下边:顶点 11 和 22 之间的权值为 44 的边,顶点 22 和 33 之间的权值为 55 的边,顶点 22 和 44 之间的权值为 44 的边,顶点 44 和 55 之间的权值为 22 的边,这 44 条边构成了 GG 的一棵生成树,边权之和为 1515。无法再选取边权和更小的生成树,因此 f(P)=15f(P)=15。将所有 $ (1,2,3,4,5) $ 的排列 PP 的 f(P)f(P) 求和后,结果为 17401740,请输出该值。

由 ChatGPT 4.1 翻译

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

首页