Tyvj 1085 派对

这道题和HDU 1016的素数环那道题很相似。

虽然1A了,但写代码的过程中还是丢三落四的。

 

贴完代码闪人,嘿嘿

 1 //#define LOCAL

 2 #include <iostream>

 3 #include <cstdio>

 4 #include <cstring>

 5 #include <cmath>

 6 using namespace std;

 7 

 8 int n, k, cnt;

 9 int a[12], b[12], vis[12];

10 

11 void DFS(int dep)

12 {

13     if(dep == n )

14     {

15         if(abs(b[dep-1] - b[0]) <= k)

16             ++cnt;

17         return;

18     }

19     for(int i = 0; i < n; ++i)

20     {

21         if(!vis[i] && abs(a[i]-b[dep-1])<=k)

22         {

23             vis[i] = 1;

24             b[dep] = a[i];

25             DFS(dep+1);

26             vis[i] = 0;

27         }

28     }

29 }

30 

31 int main(void)

32 {

33     #ifdef LOCAL

34         freopen("1085in.txt", "r", stdin);

35     #endif

36 

37     scanf("%d%d", &n, &k);

38     for(int i = 0; i < n; ++i)

39         scanf("%d", &a[i]);

40     memset(vis, 0, sizeof(vis));

41     cnt = 0;

42     b[0] = a[0];

43     vis[0] = 1;

44     DFS(1);

45     printf("%d\n", cnt);

46     return 0;

47 }
代码君

 

你可能感兴趣的:(T)