双端队列

Luogu
IDLGP10465
Time1000ms
Memory512MB
DifficultyP5
Ad-hoc
Sherry 现在碰到了一个棘手的问题,有 $N(1 \le N \le 200000)$ 个整数需要排序。 Sherry 手头能用的工具就是若干个双端队列。 她从 $1$ 到 $N$ 需要依次处理这 $N$ 个数,对于每个数,Sherry 能做以下两件事: 1.新建一个双端队列,并将当前数作为这个队列中的唯一的数; 2.将当前数放入已有的队列的头之前或者尾之后。 对所有的数处理完成之后,Sherry 将这些队列按一定的顺序连接起来后就可以得到一个非降的序列。 请你求出最少需要多少个双端序列。 ## Input 第一行输入整数 $N$,代表整数的个数。 接下来 $N$ 行,每行包括一个整数 $D_i$,代表所需处理的整数。 ## Output 输出一个整数,代表最少需要的双端队列数。 [samples]
Samples
Input #1
6
3
6
0
9
6
3
Output #1
2
API Response (JSON)
{
  "problem": {
    "name": "双端队列",
    "description": {
      "content": "Sherry 现在碰到了一个棘手的问题,有 $N(1 \\le N \\le 200000)$ 个整数需要排序。 Sherry 手头能用的工具就是若干个双端队列。 她从 $1$ 到 $N$ 需要依次处理这 $N$ 个数,对于每个数,Sherry 能做以下两件事: 1.新建一个双端队列,并将当前数作为这个队列中的唯一的数; 2.将当前数放入已有的队列的头之前或者尾之后。 对所有的数处理完成之后",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 524288
    },
    "difficulty": {
      "LuoguStyle": "P5"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP10465"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Sherry 现在碰到了一个棘手的问题,有 $N(1 \\le N \\le 200000)$ 个整数需要排序。\n\nSherry 手头能用的工具就是若干个双端队列。\n\n她从 $1$ 到 $N$ 需要依次处理这 $N$ 个数,对于每个数,Sherry 能做以下两件事:\n\n1.新建一个双端队列,并将当前数作为这个队列中的唯一的数;\n\n2.将当前数放入已有的队列的头之前或者尾之后。\n\n对所有的数处理完成之后...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments