[NFLSPC #6] 来点不那么魔怔的题面

Luogu
IDLGP9928
Time1000ms
Memory1024MB
DifficultyP3
Special JudgeO2优化
给定一个 $1\sim n$ 的排列 $p$ 和一个整数 $k$,要求找到 $p$ 的一个子序列 $\{p_{i_1}, p_{i_2}, \cdots, p_{i_m}\}$($1\le i_1 < i_2 < \cdots < i_m\le n$)满足: - 恰好有 $k$ 个 $j$ 满足 $1\le j\le m$ 且 $p_{i_j}$ 是 $p_{i_1}, p_{i_2}, \cdots, p_{i_m}$ 中从小往大数第 $j$ 个。 如果有多解,输出任意一组解即可。如果不存在合法的子序列,输出 $-1$。 ## Input 第一行两个整数 $n, k$。 接下来一行 $n$ 个整数 $p_1, p_2, \cdots, p_n$ 表示给定的排列。 ## Output 如果无解,输出一行一个整数 $-1$。 否则第一行输出一个整数 $m$ 表示子序列的长度。你需要保证 $1\le m\le n$。 接下来一行输出 $m$ 个整数 $i_1, i_2, \cdots, i_m$ 表示子序列的下标。你需要保证 $1\le i_j\le n$ 且 $i_j < i_{j+1}$($1\le j < m$)。 [samples] ## Note 对于所有数据,$1\le n\le 10 ^ 5$,$1\le k\le n$,$p_1, p_2, \cdots, p_n$ 为 $1\sim n$ 的排列。 - 子任务 1($10$ 分):$n\leq 20$。 - 子任务 2($10$ 分):$k = 2$。 - 子任务 3($30$ 分):$k = 3$。 - 子任务 4($30$ 分):$n\leq 10 ^ 3$。 - 子任务 5($20$ 分):无特殊限制。 Source:NFLSPC #6 D by tzc_wk
Samples
Input #1
4 1
4 2 1 3
Output #1
3
2 3 4
API Response (JSON)
{
  "problem": {
    "name": "[NFLSPC #6] 来点不那么魔怔的题面",
    "description": {
      "content": "给定一个 $1\\sim n$ 的排列 $p$ 和一个整数 $k$,要求找到 $p$ 的一个子序列 $\\{p_{i_1}, p_{i_2}, \\cdots, p_{i_m}\\}$($1\\le i_1 < i_2 < \\cdots < i_m\\le n$)满足: - 恰好有 $k$ 个 $j$ 满足 $1\\le j\\le m$ 且 $p_{i_j}$ 是 $p_{i_1}, p_{i_2}, \\cd",
      "description_type": "Markdown"
    },
    "platform": "Luogu",
    "limit": {
      "time_limit": 1000,
      "memory_limit": 1048576
    },
    "difficulty": {
      "LuoguStyle": "P3"
    },
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "LGP9928"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "给定一个 $1\\sim n$ 的排列 $p$ 和一个整数 $k$,要求找到 $p$ 的一个子序列 $\\{p_{i_1}, p_{i_2}, \\cdots, p_{i_m}\\}$($1\\le i_1 < i_2 < \\cdots < i_m\\le n$)满足:\n\n- 恰好有 $k$ 个 $j$ 满足 $1\\le j\\le m$ 且 $p_{i_j}$ 是 $p_{i_1}, p_{i_2}, \\cd...",
      "is_translate": false,
      "language": "English"
    }
  ]
}
Full JSON Raw Segments