长度为n的第k个排列 题目ID:7977

题目描述

求 1, 2, 3, …, n1,2,3,…,n 的字典序第 kk 小的排列。

输入格式

一行两个正整数 n, k

输出格式

一行表示答案。

样例

Input 1

3 3

Output 1

2 1 3

数据范围

1≤n≤10, 1≤k≤100

找鞍点

题目ID:9673选做题100分

最新提交:0 分

历史最高:0 分

时间限制: 200ms

空间限制: 65535kB

题目描述

时间:0.2s 空间:64M

【题目描述】

一个矩阵的“鞍点”是指该位置上的元素值在该行上最大、在该列上最小。

请你找出给定的n阶方阵的鞍点。

【输入描述】

第一行给出一个正整数n(1≤n≤50)。
随后n行,每行给出n个整数,其间以空格分隔。

【输出描述】

两个整数,表示鞍点所在的行和列。
如果鞍点不存在,则输出"NONE"。
题目保证给出的矩阵至多存在一个鞍点。

【样例输入】

4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9

【样例输出】

3 2

约定:

提示:

暴力加记录

1 个赞

之前写过一题全排列,记录一下就ok了

1 个赞


还有一题

1 个赞

有核心代码吗

1 个赞
void f(int k){
	if(k==n+1){
		cnt++;
		if(cnt==t){
			for(int i=1;i<=n;i++){
			printf("%d ",a[i]);
		}
		printf("\n");
	}
}
	
	for(int i=1;i<=n;i++){
		if(vis[i]==0){
			a[k]=i;
			vis[i]=1;
			f(k+1);
			a[k]=0;
			vis[i]=0;
		}
	}
}
1 个赞

f(1)思密达

1 个赞

这不还是没输出

1 个赞

你要输入的是t思密达,看看循环条件

1 个赞

哦,我同学在旁边坑我,更我说是k

1 个赞

还有找鞍点这题呢

1 个赞

根据题目用for找

1 个赞

老师要求用dfs做

1 个赞

那就dfs暴力找,先找到这行最大的,有就看它是不是这列最小

1 个赞

有核心代码吗,我比较菜

1 个赞

我用for写的

1 个赞

for也行

1 个赞

我改一改

1 个赞