AT_wupc2019_g.Teishoku

通过率:0%

AC君温馨提醒

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

题目描述

在 W 大学的食堂里,有 \(N\) 种套餐可供选择,这些套餐用整数 \(0, 1, \cdots, N-1\) 标识。

此时,食堂外已经有 \(M\) 个人在排队,等待他们所点的套餐。每个人选择的套餐用序列 \(A\) 表示,其中第 \(i\) 位顾客点的套餐为 \(A_i\)。

为提高工作效率,食堂采取的做法是每次只制作一种套餐,并将其直接提供给所有点了这种套餐且还排在队列中的顾客。在这样的安排中,对于尚未获得套餐的顾客 \(i\),如果他的后面有顾客 \(j\ (i < j)\) 也选择了相同的套餐,那么 \(i\) 的不满意度将增加 \(1\)。

食堂希望找出一种最佳的套餐制作与供应顺序,以使得所有顾客的不满意度总和达到最小。请计算并输出这种最优顺序下的不满意度总和。

输入格式

输入为标准输入,格式如下:

N M
A_0 A_1 \dots A_{M-1}

输出格式

在最佳的套餐提供顺序下,输出所有顾客的不满意度总和的最小值。

输入输出样例

  • 输入#1

    2 5
    0 1 0 0 1

    输出#1

    2
  • 输入#2

    5 5
    4 1 2 3 0

    输出#2

    0

说明/提示

  • (1 \leq N \leq 15)
  • (1 \leq M \leq 200000)
  • (0 \leq A_i \leq N-1)
  • 所有输入数值均为整数。

示例解释 1

  • 如果优先制作并提供套餐 (0),则第 (2) 位顾客的不满意度会上升 (2),而第 (5) 位顾客的不满意度不变,总的不满意度因此为 (2)。
  • 如果优先制作并提供套餐 (1),则第 (1) 位顾客的不满意度会上升 (2),第 (3) 和第 (4) 位顾客的不满意度各增加 (1),总的不满意度达到 (4)。

因此,通过先提供套餐 (0) 然后提供套餐 (1),能够最小化不满意度的总和。

本翻译由 AI 自动生成

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

首页