#include<cstdio>
#include<iostream>
using namespace std;
int ha[][],li[][],xi[][],a[][],bh[][],bl[][],kg;
char ch[];
bool pan(int x,int y,int i)
{
if(ha[x][i]||li[y][i]||xi[(x-)/*+(y-)/][i])
return ;
if((y-)%!=&&(bh[x][y]^(i>a[x][y-])))
return ;
if((x-)%!=&&(bl[x][y]^(i>a[x-][y])))
return ;
return ;
}
void dfs(int x,int y)
{
//if(a[1][1]==4&&a[1][2]==9&&a[1][3]==1&&a[1][4]==7&&a[1][5]==3&&a[1][6]==6&&a[1][7]==5&&a[1][8]==2)
//{
//printf(" ");
//}
if(kg)
return;
if(y==)
{
x++;
y=;
}
if(x==)
{
kg=;
for(int i=;i<=;i++)
{
for(int j=;j<=;j++)
{
printf("%d",a[i][j]);
if(j!=)
printf(" ");
}
printf("\n");
}
return;
}
for(int i=;i<=;i++)
if(pan(x,y,i))
{
a[x][y]=i;
ha[x][i]=;
li[y][i]=;
xi[(x-)/*+(y-)/][i]=;
dfs(x,y+);
ha[x][i]=;
li[y][i]=;
xi[(x-)/*+(y-)/][i]=;
}
}
int main()
{
for(int i=;i<=;i++)
{
for(int j=;j<;j++)
if(j%)
{
scanf("%s",ch);
if(ch[]=='<')
bh[i][j+]=;
else
bh[i][j+]=;
}
if(i%)
for(int j=;j<=;j++)
{
scanf("%s",ch);
if(ch[]=='^')
bl[i+][j]=;
else
bl[i+][j]=;
}
}
dfs(,);
return ;
}

一个非常恶心的搜索。

bzoj 3109: [cqoi2013]新数独的更多相关文章

  1. bzoj 3109: [cqoi2013]新数独【dfs】

    按3x3的小块dfs,填数的时候直接满足所有条件即可 #include<iostream> #include<cstdio> #include<cstring> u ...

  2. 3109. [CQOI2013]新数独【DFS】

    Description Input 输入一共15行,包含一个新数独的实例.第奇数行包含左右方向的符号(<和>),第偶数行包含上下方向的符号(^和v).   Output 输出包含9行,每行 ...

  3. bzoj 3105: [cqoi2013]新Nim游戏 异或高消 && 拟阵

    3105: [cqoi2013]新Nim游戏 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 535  Solved: 317[Submit][Stat ...

  4. B3109 [cqoi2013]新数独 搜索dfs

    就是基于普通数独上的一点变形,然后就没什么了,普通数独就是进行一边dfs就行了. 题干: 题目描述 输入格式 输入一共15行,包含一个新数独的实例.第奇数行包含左右方向的符号(<和>),第 ...

  5. BZOJ3109: [cqoi2013]新数独

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3109 搜索一遍.读入注意一下.. #include<cstring> #inclu ...

  6. CQOI2013 新数独

    传送门 这道题也是很暴力的搜索啊…… 因为数独一开始全是空的,只有许许多多的大小限制条件,那也没必要纠结从哪开始搜索了,直接暴力搜索之后判断一下是否合法. 这题最恶心的是读入.现学了一招判断点在哪个块 ...

  7. BZOJ 3105 [CQOI2013]新Nim游戏 ——线性基

    [题目分析] 神奇的题目,两人都可以第一次取走足够多堆的石子. nim游戏的规则是,如果异或和为0,那么就先手必输,否则先手有必胜策略. 所以只需要剩下一群异或和为0就可以了. 先排序,线性基扫一遍即 ...

  8. BZOJ 3105: [cqoi2013]新Nim游戏

    题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3105 题意是要取一些数使得剩余的数xor和的子集不为0 拟阵.求解极大线性无关组.贪心从大到小 ...

  9. BZOJ 3105: [cqoi2013]新Nim游戏 [高斯消元XOR 线性基]

    以后我也要用传送门! 题意:一些数,选择一个权值最大的异或和不为0的集合 终于有点明白线性基是什么了...等会再整理 求一个权值最大的线性无关子集 线性无关子集满足拟阵的性质,贪心选择权值最大的,用高 ...

随机推荐

  1. 提高网站性能的 5 个 Grunt任务//////////////////z

    提高网站性能的 5 个 Grunt任务 时间 2015-03-06 09:13:02  极客头条 原文  http://hugnew.com/wordpress/提高网站性能的-5-个-grunt任务 ...

  2. ef第一次启动较慢

    解决ef第一次启动较慢的问题: protected void Application_Start() { //禁用第一次ef查询对表__MigrationHistory的问题使用了ef的Code fi ...

  3. viewpaper 抽屉

    引用:http://www.apkbus.com/android-18384-1-1.html 在为ViewFlipper视图切换增加动画和Android中实现视图随手势移动中实现了视图随手势切换,现 ...

  4. Java多线程编程——进阶篇一

    一.线程栈模型与线程的变量 要理解线程调度的原理,以及线程执行过程,必须理解线程栈模型. 线程栈是指某一时刻内存中线程调度的栈信息,当前调用的方法总是位于栈顶.线程栈的内容是随着程序的运行动态变化的, ...

  5. CentOS 6.4下编译安装 gcc-4.8.0(转)

    转:http://www.centoscn.com/image-text/install/2014/0807/3454.html 1.首先下载源代码 wget http://ftp.gnu.org/g ...

  6. NET中的类型和装箱/拆箱原理

    谈到装箱拆箱,DebugLZQ相信给位园子里的博友一定可以娓娓道来,大概的意思就是值类型和引用类型的相互转换呗---值类型到引用类型叫装箱,反之则叫拆箱.这当然没有问题,可是你只知道这么多,那么Deb ...

  7. js-统计选项个数

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. YTU 2345: 后序遍历二叉树

    原文链接:https://www.dreamwings.cn/ytu2345/2611.html 2345: 后序遍历二叉树 时间限制: 1 Sec  内存限制: 128 MB 提交: 3  解决:  ...

  9. cf 700 B Connecting Universities

    题意:现在给以一棵$n$个结点的树,并给你$2k$个结点,现在要求你把这些节点互相配对,使得互相配对的节点之间的距离(路径上经过边的数目)之和最大.数据范围$1 \leq n \leq 200000, ...

  10. Knights of the Round Table-POJ2942(双连通分量+交叉染色)

    Knights of the Round Table Description Being a knight is a very attractive career: searching for the ...