uva129
来源:互联网 发布:大智慧软件好用吗 编辑:程序博客网 时间:2024/05/04 00:51
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19665
/*solution: 直接使用dfs搜索穷举note: 注意每当dfs一层时要判断是否为困难串时,只需判断当前串的字符串即可,原理和8皇后一样。 因为前面都已经在上面几层的dfs时判断完了。date: 2016/5/7*/#include <iostream>#include <cstdio>#include <cstring>using namespace std;int n, L, cnt, vis[85]; //表示已经尝试到第几个位置int c[85];int dfs(int cur) { //在从0开始的第k个位置上尝试放置字母使其满足条件 if(cnt++ == n) { // for(int i = 0; i < cur; i++) { if(i % 64 == 0 && i > 0) printf("\n"); else if(i % 4 == 0 && i > 0) printf(" "); printf("%c", 'A' + c[i]); } printf("\n%d\n", cur); return 0; } for(int i = 0; i < L; i++) { c[cur] = i; int ok = 1; for(int j = 1; j * 2 <= cur + 1; j++) { int equa = 1; for(int k = 0; k < j; k++) { //注意只需判断当前串的前一半以及后一半 if(c[cur - k] != c[cur - j - k]) { equa = 0; break; } } if(equa) { ok = 0; break; } } if(ok) if(!dfs(cur + 1)) return 0; //在保证当前串是困难串的情况下才递归求下一个困难串 } return 1;}int main(){ while(~scanf("%d%d", &n, &L) && n > 0) { memset(vis, 0, sizeof(vis)); cnt = 0; dfs(0); } return 0;}
0 0
- uva129
- UVA129
- uva129
- UVA129
- UVa129
- UVa129
- UVa129 -KryptonFactor
- uva129回朔法
- [回溯]Krypton Factor UVA129
- UVa129 - Krypton Factor
- UVA129 - Krypton Factor
- UVA129-Krypton Factor
- UVA129 Krypton Factor
- BNU17268 UVA129 Krypton Factor
- uva129 Krypton Factor
- UVA129困难的串
- UVA129困难的串
- UVa129@DFS回溯
- Sublime Text2安装smali代码语法高亮插件
- 《CLR via C#》学习笔记【2】
- 中标麒麟系统进行双网卡绑定
- ACMer之路开启
- Spark定制班第2课:通过案例对Spark Streaming透彻理解三板斧之二:解密Spark Streaming运行机制和架构
- uva129
- 学习 ef 6 的碰到的一些问题
- failed to create process
- PAT (Advanced Level) L1-6. 连续因子 for循环暴力
- struts2(六)拦截器机制
- POJ2352 Stars 树状数组 + 裸
- 00 Java入门摘要
- jQuery操作属性的相关方法
- 区间重叠的判断