U135075 简单数列 TJ
思路
构造,不会。
直接暴搜。(考场上不敢写于是骗了点分)
据说还是最简单的题 \(XD\)。
代码
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 510;
int n ,a[MAXN] ,flag = 0;
void dfs (int i) {
if (i == n + 1) {
flag = 1;
for (int q = 1;q <= n;++ q)
printf ("%d ",a[q]);
printf ("\n");
return ;
}
int b[5] = {0};
for (int len = 1;len <= i / 2;++ len) {
for (int q = i - len + 1;q <= i - 1;++ q)
if (a[q] != a[q - len]) goto H;
b[a[i - len]] = 1;
H :;
}
for (int q = 1;q <= 4;++ q) {
if (! b[q]) {
a[i] = q;
dfs (i + 1);
a[i] = 0;
if (flag) return ;
}
}
}
int main () {
scanf ("%d",&n);
dfs (1);
return 0;
}
cb
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步