dfs暴力回溯,这个代码是我修改以后的,里面的go相当简洁,以前的暴力手打太麻烦,我也来点技术含量..

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
#define m 4
int caocao[][] = {,,,,,,,};
int go[][][] = {{{,},{,}},{{,},{,}},{{,}}};
int kind[] = {,,};
int vis[][];
int n,tmp;
void work_caocao(int x,int y)
{
int tmpx,tmpy;
for(int i = ; i < ; i++)
{ tmpx = x + caocao[i][];
tmpy = y + caocao[i][];
vis[tmpx][tmpy] = ;
}
}
bool ok(int x,int y,int k)
{
for(int i = ; i < kind[k]; i++)
{
int tmpx,tmpy;
tmpx = x+go[k][i][],tmpy = y+go[k][i][];
if(vis[tmpx][tmpy]) return false;
if(tmpx > n || tmpy > m) return false;
if(tmpx <= || tmpy <= ) return false;
}
return true;
}
void set_vis(int x,int y,int k,int v)
{
for(int i = ; i < kind[k]; i++)
{
int tmpx,tmpy;
tmpx = x+go[k][i][],tmpy = y+go[k][i][];
vis[tmpx][tmpy] = v;
}
}
void dfs(int x,int y)
{
if(y == m+)
{
x++;
y = ;
}
if(x == n+)
{
tmp++;
return;
}
if(vis[x][y])dfs(x,y+);
for(int i = ; i < ; i++)
{
if(ok(x,y,i))
{
//cout<<x << " "<<y<<endl;
set_vis(x,y,i,);
dfs(x,y+);
set_vis(x,y,i,);
}
}
}
void set_caocao(int x,int y)
{
for(int i = x; i < n; i++)
for(int j = y; j < m; j++)
{
memset(vis,,sizeof(vis));
//cout<<i<<" "<<j<<endl;
work_caocao(i,j);
dfs(,);
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int ans[];
ans[] = ,ans[] = ;
for(int i = ;i <= ;i++)
{
n = i;
tmp = ;
set_caocao(,);
ans[i] = tmp;
}
int nn;
scanf("%d",&nn);
printf("%d\n",ans[nn]);
}
}

FZU 2107 Hua Rong Dao(暴力回溯)的更多相关文章

  1. ACM: FZU 2107 Hua Rong Dao - DFS - 暴力

    FZU 2107 Hua Rong Dao Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I6 ...

  2. FZU 2107 Hua Rong Dao(dfs)

    Problem 2107 Hua Rong Dao Accept: 318 Submit: 703 Time Limit: 1000 mSec Memory Limit : 32768 KB Prob ...

  3. fzu 2107 Hua Rong Dao(状态压缩)

    Problem 2107 Hua Rong Dao Accept: 106    Submit: 197 Time Limit: 1000 mSec    Memory Limit : 32768 K ...

  4. foj Problem 2107 Hua Rong Dao

    Problem 2107 Hua Rong Dao Accept: 503    Submit: 1054Time Limit: 1000 mSec    Memory Limit : 32768 K ...

  5. FZOJ Problem 2107 Hua Rong Dao

                                                                                                        ...

  6. uva 639 Don't Get Rooked 变形N皇后问题 暴力回溯

    题目:跟N皇后问题一样,不考虑对角冲突,但考虑墙的存在,只要中间有墙就不会冲突. N皇后一行只能放一个,而这题不行,所以用全图暴力放棋,回溯dfs即可,题目最多就到4*4,范围很小. 刚开始考虑放一个 ...

  7. Chinese Mahjong UVA - 11210 (暴力+回溯递归)

    思路:得到输入得到mj[]的各个牌的数量,还差最后一张牌.直接暴力枚举34张牌就可以了. 当假设得到最后一张牌,则得到了的牌看看是不是可以胡,如果可以胡的话,就假设正确.否者假设下一张牌. 关键还是如 ...

  8. Magic FZU - 2280 无脑HASH暴力

    Kim is a magician, he can use n kinds of magic, number from 1 to n. We use string Si to describe mag ...

  9. UVaLive 6585 && Gym 100299F Draughts (暴力+回溯)

    题意:给定一个 10*10的矩阵,每一个W可以跳过一个B向对角走到#并把B吃掉,并且可以一直跳直到不能动为止,现在是W走的时候,问你最多吃几个B. 析:直接暴力+回溯,深搜就好. 代码如下: #pra ...

随机推荐

  1. 在Activity之间传递数据—传递值对象

    传递有两种方式,一种是类继承自Serializable(Java方式,速度较慢),另一种是类继承自Parcelable(Android方式) 继承自Serializable的时候,实现比较简单,类只需 ...

  2. 在Java中Arrays工具类实现功能的六种方法

    使用Arrays工具类,要先导入包即:import.java.util.Arrays 以下是实现六种功能的方法: 1.比较两个数组值是否相等: 结果为true.false.(布尔型不能比较) int ...

  3. 《初识PE》导出表

    转自:http://www.blogfshare.com/pe-export.html (二).导出表 当PE文件被执行的时候,Windows装载器将文件装入内存并将导入表中登记的DLL文件一并装入, ...

  4. MVC 数据绑定

    在做Asp.Net MVC项目中,都知道View负责页面展示数据或者提供页面收集数据,而所展示的数据或者收集的数据都是从Controller的Action中获取或提交到Controller的Actio ...

  5. LeetCode OJ 109. Convert Sorted List to Binary Search Tree

    Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...

  6. PHP之输出控制 ob_start(),ob_get_contents(),ob_end_clean()

    1.常用函数 ob_start();#打开输出缓冲区 ob_get_contents();#获取缓冲区内容 ob_get_length();#获取缓冲区内容长度 ob_clean();#清除之前的所有 ...

  7. centos 6.2安装bind 9.8.2 master、slave与自动修改后更新

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dl528888.blog.51cto.com/2382721/1249311 随 ...

  8. spring 基于XML和注解的两种事务配置方式

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  9. libc.so.6重做链接,删除导致的缺失问题(后期需要深入研究),未能成功升级

    中间件启动,提示/lib64/libc.so.6版本过低,升级glibc后,修改临时环境变量,结果导致sgment fault错误,根据报错 ll /lib64/ |grep libc -rwxr-x ...

  10. 404、500、502等HTTP状态码介绍

    基本涵盖了所有问题HTTP 400 – 请求无效HTTP 401.1 – 未授权:登录失败HTTP 401.2 – 未授权:服务器配置问题导致登录失败HTTP 401.3 – ACL 禁止访问资源HT ...