Luogu

BZOJ

分析

先手玩几组数据,发现答案和奇偶性有关?

于是写个爆搜就过了。

然后BZOJ上没有SPJ,所以具体的输出顺序戳这里

代码

//It is made by M_sea
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath>
#define re register
using namespace std;

inline int read() {
    int X=0,w=1; char c=getchar();
    while (c<'0'||c>'9') { if (c=='-') w=-1; c=getchar(); }
    while (c>='0'&&c<='9') X=X*10+c-'0',c=getchar();
    return X*w;
}

int n,B;
int a[30];

inline void dfs(int pos,int limit) {
    if (pos>n) {
        for (re int i=n;i>=1;--i) putchar(a[i]+((a[i]<10)?48:55));
        //这里倒序是为了在BZOJ上AC
        putchar('\n'); return;
    }
    if (limit)
        for (re int i=B-1;~i;--i) a[pos]=i,dfs(pos+1,(i&1)^1);
    else
        for (re int i=0;i<B;++i) a[pos]=i,dfs(pos+1,(i&1));
}

int main() {
    n=read(),B=read();
    dfs(1,0);
    return 0;
}
最后修改:2019 年 09 月 24 日 10 : 18 PM