首页 > 试题广场 >

数列还原

[编程题]数列还原
  • 热度指数:14916 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
牛牛的作业薄上有一个长度为 n 的排列 A,这个排列包含了从1到n的n个数,但是因为一些原因,其中有一些位置(不超过 10 个)看不清了,但是牛牛记得这个数列顺序对的数量是 k,顺序对是指满足 i < j 且 A[i] < A[j] 的对数,请帮助牛牛计算出,符合这个要求的合法排列的数目。

输入描述:
每个输入包含一个测试用例。每个测试用例的第一行包含两个整数 n 和 k(1 <= n <= 100, 0 <= k <= 1000000000),接下来的 1 行,包含 n 个数字表示排列 A,其中等于0的项表示看不清的位置(不超过 10 个)。


输出描述:
输出一行表示合法的排列数目。
示例1

输入

5 5
4 0 0 2 0

输出

2
头像 我不打朋友圈
发表于 2022-01-17 22:22:28
import java.io.; import java.util.; public class Main { public static int res = 0; public static int[] nums, cands; public static boolean[] seen; publ 展开全文
头像 完全没头绪
发表于 2023-04-01 20:53:33
using System; using System.Collections; using System.Collections.Generic; public class Program { public static void Main() { string line; 展开全文
头像 Ⅲ_Dc
发表于 2022-03-04 13:45:18
//...dfs退出条件,随手写了一个res==n,最后花了42分钟,找这个,res==k //两个数组一个用来保存完整输入,一个用来保存没有输入的(1...n中没有输入的数) //dfs到底之后才会进入下一个,不用担心vector遍历混乱的问题,与bfs区分 //然后这道题算入门难度中高的了,回溯 展开全文
头像 hyandsg
发表于 2021-02-20 11:42:28
开始想了一下动态规范和贪心什么的,完全没思路。 最后用dfs+回溯竟然没超时。 import java.util.*; public class Main{ private static int result=0; public static void main(String[] a 展开全文