1 条题解
-
0杨竣然 (Edric) LV 9 @ 2024-2-3 10:16:48
#include <iostream> #include<bits/stdc++.h> using namespace std; int n,ans,k,g[12],flag[12],a[12]; void dfs(int step){ int i; for( i = 1 ; i <= n ; i++){ if(abs(g[i] - a[step -1]) <= k && !flag[i]){ flag[i] ++; a[step] = g[i]; if(step == n && abs(a[step] - a[1]) <= k){ ans++; } else{ dfs(step+1); } flag[i] --; } } } int main(){ cin>>n>>k; int i; for(i=1;i<=n;i++){ cin>>g[i]; } if(n==1) ans=1; else{ flag[1]++; a[1]=g[1]; dfs(2); } cout << ans; return 0; }
- 1
信息
- ID
- 3063
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 90
- 已通过
- 18
- 上传者