
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int a[]={1,2,3,4,5,6,7,8,9,10};
int main()
{
int ans=0;
do
{
if(abs(a[0]-a[1])==1) continue;
if(abs(a[1]-a[2])==1) continue;
if(abs(a[2]-a[3])==1) continue;
if(abs(a[3]-a[4])==1) continue;
if(abs(a[4]-a[5])==1) continue;
if(abs(a[5]-a[6])==1) continue;
if(abs(a[6]-a[7])==1) continue;
if(abs(a[7]-a[8])==1) continue;
if(abs(a[8]-a[9])==1) continue;
ans++;
}while(next_permutation(a,a+10));
cout<<ans<<endl;
// cout<<479306<<endl;
return 0;
}
本文介绍了一个使用C++实现的程序,该程序通过遍历所有可能的十位数排列来计算满足特定条件(任意相邻两位数的差的绝对值不为1)的有效排列总数。采用next_permutation函数进行全排列生成,并通过条件判断筛选有效排列。
490

被折叠的 条评论
为什么被折叠?



