题目说了 a1,⋯ ,ana_1,\cdots,a_na1 ,⋯,an 是一个 1∼n1\sim n1∼n 的排列。那么要让 ∑i=1kai\sum\limits_{i=1}^ka_ii=1∑k ai 最小,自然想到 a1,⋯ ,aka_1,\cdots,a_ka1 ,⋯,ak 应当是一个 1∼k1\sim k1∼k 的排列。
那么思路就很明确了,对于每个输入的前 kkk 个数,如果发现不在 1,⋯ ,k1,\cdots,k1,⋯,k 的范围内,那么就说明 1∼k1\sim k1∼k 排列中的一个数不在 a1,⋯ ,aka_1,\cdots,a_ka1 ,⋯,ak 范围内,把这个数交换进前 kkk 个数即可。这里不用真的交换,只需记录次数即可。于是,代码就出现了。
我没有用错 LaTeX\sout{\LaTeX{}}LATE X 和Markdown\sout{\text{Markdown}}Markdown吧