/** @xigua */
#include <cstdio>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <vector>
#include <stack>
#include <cstring>
#include <queue>
#include <set>
#include <string>
#include <map>
#include <climits>
#define PI acos(-1)
using namespace std;
typedef long long LL;
typedef double db;
const int maxn = 1e5 + ;
const int mod = 1e9 + ;
const int INF = 1e8 + ;
const LL inf = 1e15 + ;
const db eps = 1e-;
int mp[][];
int vis[][];
int n;
LL sum=;
int cnt=; bool safe(int x, int y) {
if (x>=&&x<&&y>=&&y<n&&!vis[x][y]) return ;
return ;
}
bool check() {
for (int i=; i<; i++) {
for (int j=; j<n; j++) {
if (!vis[i][j]) {
return ;
}
}
}
return ;
}
int findx() {
for (int i=; i<; i++) {
for (int j=; j<n; j++) {
if (!vis[i][j]) {
return i;
}
}
}
return -;
}
int findy() {
for (int i=; i<; i++) {
for (int j=; j<n; j++) {
if (!vis[i][j]) {
return j;
}
}
}
return -;
}
void dfs(int x, int y) {
for (int k=; k<; k++) {
if (k==) { //1*2
if(safe(x,y)&&safe(x+,y)) {
vis[x][y]=, vis[x+][y]=;
if (check()) {
sum++;
vis[x][y]=, vis[x+][y]=;
}
else {
int xx=findx(), yy=findy();
if(xx!=-&&yy!=-) {
vis[x][y]=, vis[x+][y]=;
dfs(xx,yy);
vis[x][y]=, vis[x+][y]=;
}
} }
}
if (k==) { //2*1
if (safe(x,y)&&safe(x,y+)) {
vis[x][y]=, vis[x][y+]=;
if (check()) {
sum++;
vis[x][y]=, vis[x][y+]=;
}
else {
vis[x][y]=, vis[x][y+]=;
int xx=findx(), yy=findy();
if(xx!=-&&yy!=-) {
dfs(xx,yy);
vis[x][y]=, vis[x][y+]=;
}
}
}
}
}
}
void solve() {
scanf("%d", &n);
sum=; cnt=;
memset(vis, , sizeof(vis));
dfs(, );
cout<<"sum:"<<sum<<endl;
}
int main() {
int t = , cas = ;
//freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
//scanf("%d", &t);
while(t--) {
// printf("Case %d: ", cas++);
solve();
}
return ;
}

HDU 6185(打表代码的更多相关文章

  1. [转]用Python做一个自动生成读表代码的小脚本

    写在开始(本片文章不是写给小白的,至少你应该知道一些常识!) 大家在Unity开发中,肯定会把一些数据放到配置文件中,尤其是大一点的项目,每次开发一个新功能的时候,都要重复的写那些读表代码.非常烦.来 ...

  2. OVS 内核KEY值提取及匹配流表代码分析

    原文链接:http://ry0117.com/2016/12/24/OVS内核KEY值提取及匹配流表代码分析/ 当开启OVS后,创建datapath类型为system的网桥并他添加相关接口,OVS网桥 ...

  3. python编写九九乘法表代码

    打印九九乘法表 代码: #!/usr/bin/env python # -*- coding: UTF-8 -*- # 项目二: # 1.要求:编写九九乘法表 # 2.分析: # 根据九九乘法表的样式 ...

  4. poj 3177&&3352 求边双联通分量,先求桥,然后求分量( 临界表代码)

    /*这道题是没有重边的,求加几条边构成双联通,求边联通分量,先求出桥然后缩点,成一个棵树 找叶子节点的个数*/ #include<stdio.h>//用容器写在3177这个题上会超内存,但 ...

  5. Lua 读表代码,自动生成字段名字

    表格格式为 INT STRING INT INT INT INT INT Id Desc Type SceneId OpenId MaxPliesp ClearancePlies 第1关 - 第2关 ...

  6. HDU 6185 Covering 矩阵快速幂

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6185 题意:用 1 * 2 的小长方形完全覆盖 4 * n的矩形有多少方案. 解法:小范围是一个经典题 ...

  7. hdu 4542 打表+含k个约数最小数

    http://acm.hdu.edu.cn/showproblem.php?pid=4542 给出一个数K和两个操作 如果操作是0,就求出一个最小的正整数X,满足X的约数个数为K. 如果操作是1,就求 ...

  8. HDU 1223 打表 + 大数

    http://acm.hdu.edu.cn/showproblem.php?pid=1223 一般遇到这些题,我都是暴力输出前几项,找规律.未果. 然后输出n = 1时候,以A开始,有多少个答案, n ...

  9. Python之99乘法表代码

    #coding=utf-8 #左下三角格式输出九九乘法表 for i in range(1,10):      for j in range(1,i+1):          print " ...

随机推荐

  1. python--第三天总结

    [collection系列]1.计数器(counter) Counter是对字典类型的补充,用于追踪值的出现次数. ps:具备字典的所有功能 + 自己的功能 c = Counter('abcdeabc ...

  2. Ubuntu 14.04 LTS 安装Docker(转)

    转自:https://www.cnblogs.com/leolztang/p/5097278.html Docker官方是有很详细的安装文档(https://docs.docker.com/engin ...

  3. Gym - 101243F Vitamins(思维+并查集)

    题意 有三种药丸,白色W>红色R>蓝色B,给你m个约束条件,问你n个药丸的颜色,不能确定颜色输出‘?’ 题解 如果1<2<3,只要找到2就能确定1和3的颜色 如果2=4,只要确 ...

  4. f5冗余BIG-IP系统的安装

    1.设备服务群集 •一个系列的BIG-Ips彼此互相支持DSC •每一台BIG-IP 自己生成一个Device Object •不同设备的信息 •建立信任证书 •在local device上设置Dev ...

  5. Linux 线程】线程同步《四》

    1.信号量 (1)概念 信号量和互斥锁(mutex)的区别:互斥锁只允许一个线程进入临界区,而信号量允许多个线程同时进入临界区. 不多做解释,要使用信号量同步,需要包含头文件semaphore.h. ...

  6. ubuntu系列-安装jdk以及eclipse(for C++)

    1.安装jdk eclipse是使用java语言开发的,一个java应用程序的运行要在java虚拟机下.在没有安装jdk的前提下,即使在ubuntu上安装了eclipse也不能使用. (1)首先在官网 ...

  7. echarts折线图Demo

    echarts链接:http://echarts.baidu.com/examples/editor.html?c=line-stack 黑底代码:http://gallery.echartsjs.c ...

  8. cpio解压initramfs.img

    一.解压initramfs.img # mkdir test # cp /boot/initramfs.img /test # cd test # file initramfs.img initram ...

  9. Android 异步加载数据 AsyncTask异步更新界面

    官方文档:     AsyncTask enables proper and easy use of the UI thread. This class allows to perform backg ...

  10. Linux下实时查看GPU状态

    参考链接: http://blog.csdn.net/yao_yao_2015/article/details/53404389 1. 显示当前GPU使用情况 Nvidia自带了一个nvidia-sm ...