2019牛客國慶集訓派對day1 E-Numbers

題目鏈接:https://ac.nowcoder.com/acm/contest/1099/E

解題心得:其實很對限制條件題目中都已經給出了,給出了所有的限制條件之後會發現如果暴搜複雜度也不會特別的大。



#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll maxn = 2e4+100;

char s[maxn];
ll ans = 0;
int len;
bool vis[maxn];

void dfs(int pos) {
    if(pos >= len) {
        ans++;
        return ;
    }

    int va1 = s[pos] - '0';
    if(!vis[va1]) {
        vis[va1] = true;
        dfs(pos+1);
        vis[va1] = false;
    }

    if(va1 == 0 || pos + 1 >= len) return ;

    int va2 = (s[pos] - '0')*10 + s[pos+1] - '0';
    if(!vis[va2]) {
        vis[va2] = true;
        dfs(pos+2);
        vis[va2] = false;
    }
}

int main() {
//    freopen("1.in.txt", "r", stdin);
    while(scanf("%s", s) != EOF ){
        ans = 0;
        len = strlen(s);
        dfs(0);
        printf("%d\n", ans);
    }
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章