ACM: FZU 2107 Hua Rong Dao - DFS - 暴力
Description
Cao Cao was hunted down by thousands of enemy soldiers when he escaped from Hua Rong Dao. Assuming Hua Rong Dao is a narrow aisle (one N*4 rectangle), while Cao Cao can be regarded as one 2*2 grid. Cross general can be regarded as one 1*2 grid.Vertical general can be regarded as one 2*1 grid. Soldiers can be regarded as one 1*1 grid. Now Hua Rong Dao is full of people, no grid is empty.
There is only one Cao Cao. The number of Cross general, vertical general, and soldier is not fixed. How many ways can all the people stand?
Input
There is a single integer T (T≤4) in the first line of the test data indicating that there are T test cases.
Then for each case, only one integer N (1≤N≤4) in a single line indicates the length of Hua Rong Dao.
Output
Sample Input
2
1
2
Sample Output
0
18
Hint
Here are 2 possible ways for the Hua Rong Dao 2*4.
/*/
题意:
华容道,N*4的格子,N=[1,4],一个曹操 2*2 有 2*1、1*2和1*1的士兵,问有多少中放法。 一开始不知道自己怎么想的,看一下数据这么小,而且1,2,3很容易就推出来了,以为可以推出来,【MDZZ】结果在N==4这种情况下爆炸了。。 下面进入正题。直接DFS暴力。 如果怕超时可以打表,实际上不会。 AC代码:
/*/
#include"algorithm"
#include"iostream"
#include"cstring"
#include"cstdlib"
#include"cstdio"
#include"string"
#include"vector"
#include"stack"
#include"queue"
#include"cmath"
#include"map"
using namespace std;
typedef long long LL ;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define FK(x) cout<<"["<<x<<"]\n"
#define memset(x,y) memset(x,y,sizeof(x))
#define memcpy(x,y) memcpy(x,y,sizeof(x))
#define bigfor(T) for(int qq=1;qq<= T ;qq++)
int n;
int ans,flag;
bool vis[10][10]; bool check(int x,int y) {
if(x<0||y<0||x>=n||y>=4||vis[x][y])return 0;
return 1;
} void DFS(int x) {
if(x==4*n&&flag==1) {
ans++;
return ;
}
if(x>=4*n) {
return ;
}
for(int i=0; i<4; i++) {
for(int j=0; j<4; j++) {
if(check(i,j)&&check(i+1,j)&&check(i,j+1)&&check(i+1,j+1)&&!flag) {
vis[i][j]=vis[i+1][j]=vis[i][j+1]=vis[i+1][j+1]=1;
flag=1;
DFS(x+4);
vis[i][j]=vis[i+1][j]=vis[i][j+1]=vis[i+1][j+1]=0;
flag=0;
}
if(check(i,j)&&check(i+1,j)) {
vis[i][j]=vis[i+1][j]=1;
DFS(x+2);
vis[i][j]=vis[i+1][j]=0;
}
if(check(i,j)&&check(i,j+1)) {
vis[i][j]=vis[i][j+1]=1;
DFS(x+2);
vis[i][j]=vis[i][j+1]=0;
}
if(check(i,j)) {
vis[i][j]=1;
DFS(x+1);
vis[i][j]=0;
return ;
}
}
}
}
//int _ans[5]={0,0,18,284,4862};
int main() {
int T;S
scanf("%d",&T);
bigfor(T) {
scanf("%d",&n);
memset(vis,0);
flag=0;
ans=0;
DFS(0);
printf("%d\n",ans);
}
return 0;
}
ACM: FZU 2107 Hua Rong Dao - DFS - 暴力的更多相关文章
- FZU 2107 Hua Rong Dao(dfs)
Problem 2107 Hua Rong Dao Accept: 318 Submit: 703 Time Limit: 1000 mSec Memory Limit : 32768 KB Prob ...
- FZU 2107 Hua Rong Dao(暴力回溯)
dfs暴力回溯,这个代码是我修改以后的,里面的go相当简洁,以前的暴力手打太麻烦,我也来点技术含量.. #include<iostream> #include<cstring> ...
- fzu 2107 Hua Rong Dao(状态压缩)
Problem 2107 Hua Rong Dao Accept: 106 Submit: 197 Time Limit: 1000 mSec Memory Limit : 32768 K ...
- foj Problem 2107 Hua Rong Dao
Problem 2107 Hua Rong Dao Accept: 503 Submit: 1054Time Limit: 1000 mSec Memory Limit : 32768 K ...
- FZOJ Problem 2107 Hua Rong Dao
...
- ACM: FZU 2150 Fire Game - DFS+BFS+枝剪 或者 纯BFS+枝剪
FZU 2150 Fire Game Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u ...
- ACM: Gym 100935G Board Game - DFS暴力搜索
Board Game Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Gym 100 ...
- hdu 5612 Baby Ming and Matrix games(dfs暴力)
Problem Description These few days, Baby Ming is addicted to playing a matrix game. Given a n∗m matr ...
- hdu 1010 Tempter of the Bone(dfs暴力)
Problem Description The doggie found a bone in an ancient maze, which fascinated him a lot. However, ...
随机推荐
- 线程GCD
#import "ViewController.h" @interfaceViewController () @end @implementation ViewController ...
- Java学习笔记13---一个循环程序的设计范例
package welcome; import java.util.Scanner; /* * 一个循环程序的设计范例 * 首先编写仅执行一次的程序(当无循环时) * 循环的设计步骤: * 1.确定程 ...
- C++ ## ... 实用
关于...的使用...在C宏中称为Variadic Macro,也就是变参宏.比如:#define myprintf(templt,...)fprintf(stderr,templt,__VA_ARG ...
- Express知识整理
开发实例 Express开发实例(1) —— Hello,world! Express开发实例(2) —— Jade模板引擎
- php换行符
1.需求 统一php换行符 2.实践 使用PHP_EOL替换换行符,保证平台的兼容性. 类似的有DIRECTORY_SEPARATOR 参考文档:http://www.cnblogs.com/code ...
- No Entity Framework provider found for the ADO.NET provider with invariant
在使用EF的时候,我把EF的EDMX放在单独的一个project中,UI中引用这个project的dll, 运行的时候就是提示No Entity Framework provider found fo ...
- javascript闭包和作用域链
最近在学习前端知识,看到javascript闭包这里总是云里雾里.于是翻阅了好多资料记录下来本人对闭包的理解. 首先,什么是闭包?看了各位大牛的定义和描述各式各样,我个人认为最容易一种说法: 外部函数 ...
- 严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderLis
一个让我崩溃的问题 感谢:http://blog.csdn.net/itlionwoo/article/details/17523371
- hyperV中修改centos分辨率
grubby --update-kernel=ALL --args="video=hyperv_fb:1366x768"
- java 数组中插入新的元素
class Demo1 { public static void main(String[] args) { /* 5. 有如下歌曲数组 String[] musics = new String[]{ ...