Loading

P1515 旅行(简单搜索)

非常简单的搜索。

思路:先排序,然后,搜索枚举的时候满足A < 两个旅店 < B,然后,搜索就行了。

#include<iostream>
#include<algorithm>
using namespace std;
#define ll long long
int num[60] = { 0, 990, 1010, 1970, 2030, 2940, 3060, 3930, 4060, 4970, 5030, 5590, 6010, 7000 };
int len = 14;
int a, b, n;
int ans;

void DFS(int k, int n){
    if (k == 7000){ ++ans; return; }
    for (int i = n + 1; num[i] - num[n] <= b&&i<len; ++i)
    if (num[i]-num[n]>=a)
        DFS(num[i], i);
}


int main(){
    cin >> a >> b;
    cin >> n;
    while (n--){
        int x;
        cin >> x;
        num[len++] = x;
    }
    sort(num, num + len);
    DFS(0, 0);
    cout << ans << endl;
}

 

posted @ 2019-02-15 15:22  青山新雨  阅读(297)  评论(0编辑  收藏  举报