3. 第K排列 (鬼打TLE)!!

前言:
这个测评结果也是非常的诡异。
就是相同的样例,相同的程序。
但一提交——诶?诡异的事情就来了。
结果不一样!!!

题目:

3.  第K排列
题目ID:1016必做题100分
最新提交:
Time Limit Exceeded
0 分
历史最高:
Time Limit Exceeded
0 分
时间限制: 1000ms
空间限制: 524288kB
题目描述
时间: 1s  空间:512M
 

题目描述:
输入正整数N,K,输出N个数的第K个排列

 

输入格式:
两个正整数N和K

 

输出格式:
一行,N个数

 

样例输入:
5 3

样例输出:
1 2 4 3 5
数据范围:

对于100%的数据,
N
≤
n
N≤n n = 1...10

保证存在第K个排列

错误样例:

正确结果:
in: 1 1
out: 1

本地测试:
in: 1 1
out: 1

oj测试:
in: 1 1
out:1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1。。。。。。

程序:

#include<bits/stdc++.h>
using namespace std;
int n,k;
int ans=0;
vector<int> v;
int visit[100];
int dfs(int c){
   if(c==n){
   	ans++;
   	if(ans==k){
   		for(auto i:v) cout<<i<<" ";
   		return 0;
   	}
   }else{
   	for(int i=1;i<=n;i++){
   		if(visit[i]==0){
   			v.push_back(i);
   			visit[i]=1;
   			dfs(c+1);
   			visit[i]=0;
   			v.pop_back();
   		}
   	}
   }
}
int main(){
   cin>>n>>k;
   dfs(0);
   return 0;
}

到底为什么!!!!!

??
定义什么的检查一下

加上一个特判试一下

等一下,我交一个oj试一下

okok


加了特判只有10分啊

因为其他都TLE了QAQ