全排列函数next_permutation的用法

注意:此代码会超时,只能过部分测试点

蓝桥可以用STL,所以能用全排列函数(此函数在STL中) 
#include<bits stdc++.h>
using namespace std;
#define ll long long 
int const N=1e3+7;
int const INF=0x3f3f3f3f;
int const mod=123456;
int n,k,cnt;
int a[N];
int main(){
	cin &gt;&gt; n &gt;&gt; k;
	for(int i=1;i&lt;=n;++i){
		a[i]=i;
	}
	do{
		int z=0;
		for(int i=2;i&lt;=n-1;++i){
			if(a[i]&gt;a[i-1]&amp;&amp;a[i]&gt;a[i+1] || a[i]<a[i-1]&&a[i]<a[i+1]) z++; if(z>=k || z+n-i&lt;=k-2) break;
		} 
		if(z==k-1) cnt++;
		cnt%=mod;
	}while( next_permutation(a+1,a+n+1) );  //此函数为a的下一个排列 
	//prev_permutation(a+1,a+n+1);  //此函数为a的上一个排列 
	cout &lt;&lt; cnt;
	return 0;
}
```</a[i-1]&&a[i]<a[i+1])></bits>
蓝桥真题 文章被收录于专栏

蓝桥真题的题解

全部评论

相关推荐

昨天 11:12
重庆大学 C++
既然这么缺人,为什么挂我呢
希望被offer砸中...:其实不缺人
点赞 评论 收藏
分享
程序员小白条:这比例牛逼,750:1
点赞 评论 收藏
分享
积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务