uva 129 回溯
2015-08-10 22:06
429 查看
#include <bits/stdc++.h> using namespace std; int n, k, cnt, S[100000], L; int dfs(int cur) { if (cnt++ == n) { for (int i = 0; i < cur; i++) { cout << char('A' + S[i]); if ((i + 1) % 64 == 0 && i != cur - 1) cout << endl; else if ((i + 1) % 4 == 0 && i != cur - 1) cout << " "; } cout << endl; cout << cur << endl; return 0; } else for (int i = 0; i < L; i++) { S[cur] = i; int ok = 1; for (int j = 1; j * 2 <= cur + 1; j++) { bool equal = 1; for (int k = 0; k < j; k++) if (S[cur - k] != S[cur - k - j]) {equal = 0; break;} if (equal) {ok = 0; break;} } if (ok) if (!dfs(cur + 1)) return 0; } return 1; } int main(int argc, char const *argv[]) { while (cin >> n >> L) { if (n == 0 && L == 0) break; cnt = 0; memset(S, 0, sizeof(S)); dfs(0); } return 0; }
相关文章推荐
- 第六章
- java中byte转换int时为何与0xff进行与运算
- 【BootStrap】--前端利器BootStrap
- 第三周周一 数据库操作
- NOTES收邮件配置注意事项
- ACM学习指南
- Dream------scala--开发环境搭建
- 超强、超详细Redis入门教程
- 完美解决Android SDK Manager无法更新
- 结束当前操作
- 禁止编辑表单
- CSS学习笔记---(六)
- POJ 2752 Seek the Name, Seek the Fame (KMP的next函数运用)
- 数据库常见操作
- lotusScript文件夹操作
- PC110104(液晶显示屏)(LC-Display)
- Android从SD卡加载大图裁剪为指定大小
- 入侵检测与防火墙有何不同,各有什么优缺点
- [转]VMware虚拟机上网络连接(network type)的三种模式--bridged、host-only、NAT
- I’ve seen the world,lit it up as my stage now