HDU 6185(打表代码
/** @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(打表代码的更多相关文章
- [转]用Python做一个自动生成读表代码的小脚本
写在开始(本片文章不是写给小白的,至少你应该知道一些常识!) 大家在Unity开发中,肯定会把一些数据放到配置文件中,尤其是大一点的项目,每次开发一个新功能的时候,都要重复的写那些读表代码.非常烦.来 ...
- OVS 内核KEY值提取及匹配流表代码分析
原文链接:http://ry0117.com/2016/12/24/OVS内核KEY值提取及匹配流表代码分析/ 当开启OVS后,创建datapath类型为system的网桥并他添加相关接口,OVS网桥 ...
- python编写九九乘法表代码
打印九九乘法表 代码: #!/usr/bin/env python # -*- coding: UTF-8 -*- # 项目二: # 1.要求:编写九九乘法表 # 2.分析: # 根据九九乘法表的样式 ...
- poj 3177&&3352 求边双联通分量,先求桥,然后求分量( 临界表代码)
/*这道题是没有重边的,求加几条边构成双联通,求边联通分量,先求出桥然后缩点,成一个棵树 找叶子节点的个数*/ #include<stdio.h>//用容器写在3177这个题上会超内存,但 ...
- Lua 读表代码,自动生成字段名字
表格格式为 INT STRING INT INT INT INT INT Id Desc Type SceneId OpenId MaxPliesp ClearancePlies 第1关 - 第2关 ...
- HDU 6185 Covering 矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6185 题意:用 1 * 2 的小长方形完全覆盖 4 * n的矩形有多少方案. 解法:小范围是一个经典题 ...
- hdu 4542 打表+含k个约数最小数
http://acm.hdu.edu.cn/showproblem.php?pid=4542 给出一个数K和两个操作 如果操作是0,就求出一个最小的正整数X,满足X的约数个数为K. 如果操作是1,就求 ...
- HDU 1223 打表 + 大数
http://acm.hdu.edu.cn/showproblem.php?pid=1223 一般遇到这些题,我都是暴力输出前几项,找规律.未果. 然后输出n = 1时候,以A开始,有多少个答案, n ...
- Python之99乘法表代码
#coding=utf-8 #左下三角格式输出九九乘法表 for i in range(1,10): for j in range(1,i+1): print " ...
随机推荐
- jquery mobil 和页面适应
<meta name="viewport" content="width=device-width" />
- jenkins权限控制
一.插件安装 插件:Role-based Authorization Strategy版本:2.3.2 二.全局安全配置 进入Jenkins后点击系统管理进入全局安全配置 当插件安装好的时候,授权策略 ...
- suse glibcxx版本过高问题
实际开发中发现,suse11虽然glibc版本很低,只有2.11.3,但是glibcxx版本很高,达到了3.4.19.这里我需要降低glibcxx版本.所谓glibcxx版本,即libstdc++.s ...
- switch只跟在这些之后
switch case 可以用在他们之后
- winbox添加dhcp和nat
例子如上,wan连接外网,lan作为内网. 设置网卡ip 保证mac地址正确! 去到ip address里,设置两网卡的ip! 保证能ping通外网! 设置dhcp ip pool添加池,192.16 ...
- ssh免密登陆权限问题
问题: 添加了authorized_keys还是不能免密登陆. 思路: 检查端口是否开放,是否允许root用户登录,尝试重启ssh服务... 最有可能的还是权限问题,出现Permission deni ...
- js五种继承优缺点
//1.原型继承 //缺点: 当父级的属性有引用类型的时候,任意一个实例修改了这个属性,其他实例都会受影响 // 1)基本类型:Number Boolean String undefined null ...
- console框脱离eclipse窗口
解决方案: 直接将视图重置. 在eclipse主窗口的最上层选项中,点击“window”选项,找到其中的“Reset Perspective”选项,点击确认即可.即视图重置.
- ThreadLocal ——android消息机制handler在非主线程创建not called Looper.prepare() 错误的原因
引用自:https://www.jianshu.com/p/a8fa72e708d3 引出: 使用Handler的时候,其必须要跟一个Looper绑定.在UI线程可直接初始化Handler来使用.但是 ...
- 34-BigInteger详解
在用C或者C++处理大数时感觉非常麻烦,但是在Java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,至于两个类的对象能表示最大范围不清楚,理论上能够表示无线大的数, ...