1 条题解
-
0
题目描述
(题目信息缺失,根据代码逻辑推测:给定n个点的b值和整数K,求满足以下条件的环形排列数:排列中相邻两点的b值差的绝对值≤K,且首尾两点的b值差的绝对值≤K,排列的第一个点固定为1)
#include<bits/stdc++.h> using namespace std; int n, K, ans, a[15], b[15]; bool v[15]; void dfs(int k) { if (k == n + 1) { if (abs(b[a[n]] - b[a[1]]) <= K) ans++; } else { for (int i = 2; i <= n; i++) if (v[i] == 0 && abs(b[i] - b[a[k-1]]) <= K) { a[k] = i; v[i] = 1; dfs(k + 1); a[k] = 0; v[i] = 0; } } } int main() { scanf("%d %d", &n, &K); for (int i = 1; i <= n; i++) scanf("%d", &b[i]); memset(v, 0, sizeof(v)); a[1] = 1; v[1] = 1; ans = 0; dfs(2); printf("%d", ans); return 0; }
- 1
信息
- ID
- 870
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 318
- 已通过
- 83
- 上传者