超时求助《只对一个点》
  • 板块P1521 求逆序对
  • 楼主CuFeO4
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/1/23 22:13
  • 上次更新2023/10/24 03:14:20
查看原帖
超时求助《只对一个点》
752441
CuFeO4楼主2023/1/23 22:13

本蒟蒻不知怎优化,求大佬救救 附上代码

#include<bits/stdc++.h>
using namespace std;
int ans=0;
int n,k;
int a[101];
inline void check(){
	int pd=0;
	for(int i=1;i<=n;++i){
		for(int j=i+1;j<=n;++j){
			if(a[i]<a[j]){
				pd++;
			}
		}
	}
	if(pd==k) ans++;
}
bool pd[101];
void search(int x){
	if(x==n){
		check();
	}
	else{
		for(int i=1;i<=n;++i){
			if(pd[i]){
				a[x+1]=i;
				pd[i]=false;
				search(x+1);
				pd[i]=true;
			}
		}
	}
	return;
}
signed main(){
	memset(pd,true,sizeof pd);
	cin>>n>>k;
	for(int i=1;i<=n;++i){
		a[1]=i;
		pd[i]=false;
		search(1);
		pd[i]=true;
	}
	cout<<ans%10000<<'\n';
	system("pause");
}
2023/1/23 22:13
加载中...