bzoj 3109: [cqoi2013]新数独
#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]新数独的更多相关文章
- bzoj 3109: [cqoi2013]新数独【dfs】
按3x3的小块dfs,填数的时候直接满足所有条件即可 #include<iostream> #include<cstdio> #include<cstring> u ...
- 3109. [CQOI2013]新数独【DFS】
Description Input 输入一共15行,包含一个新数独的实例.第奇数行包含左右方向的符号(<和>),第偶数行包含上下方向的符号(^和v). Output 输出包含9行,每行 ...
- bzoj 3105: [cqoi2013]新Nim游戏 异或高消 && 拟阵
3105: [cqoi2013]新Nim游戏 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 535 Solved: 317[Submit][Stat ...
- B3109 [cqoi2013]新数独 搜索dfs
就是基于普通数独上的一点变形,然后就没什么了,普通数独就是进行一边dfs就行了. 题干: 题目描述 输入格式 输入一共15行,包含一个新数独的实例.第奇数行包含左右方向的符号(<和>),第 ...
- BZOJ3109: [cqoi2013]新数独
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3109 搜索一遍.读入注意一下.. #include<cstring> #inclu ...
- CQOI2013 新数独
传送门 这道题也是很暴力的搜索啊…… 因为数独一开始全是空的,只有许许多多的大小限制条件,那也没必要纠结从哪开始搜索了,直接暴力搜索之后判断一下是否合法. 这题最恶心的是读入.现学了一招判断点在哪个块 ...
- BZOJ 3105 [CQOI2013]新Nim游戏 ——线性基
[题目分析] 神奇的题目,两人都可以第一次取走足够多堆的石子. nim游戏的规则是,如果异或和为0,那么就先手必输,否则先手有必胜策略. 所以只需要剩下一群异或和为0就可以了. 先排序,线性基扫一遍即 ...
- BZOJ 3105: [cqoi2013]新Nim游戏
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3105 题意是要取一些数使得剩余的数xor和的子集不为0 拟阵.求解极大线性无关组.贪心从大到小 ...
- BZOJ 3105: [cqoi2013]新Nim游戏 [高斯消元XOR 线性基]
以后我也要用传送门! 题意:一些数,选择一个权值最大的异或和不为0的集合 终于有点明白线性基是什么了...等会再整理 求一个权值最大的线性无关子集 线性无关子集满足拟阵的性质,贪心选择权值最大的,用高 ...
随机推荐
- 最长公共子序列(加强版) Hdu 1503 Advanced Fruits
Advanced Fruits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)T ...
- js获取url参数值
用过的封装好的js获取url问号后的参数的方法: <script> var Request = new Object(); Request = GetRequest();var error ...
- 【转】PowerShell入门(序):为什么需要PowerShell?
转至:http://www.cnblogs.com/ceachy/archive/2013/01/23/PowerShellPreface.html 曾几何时,微软的服务器操作系统因为缺乏一个强大的S ...
- Centos6.5 安装 RabbitMQ3.6.1
Centos6.5 安装 RabbitMQ3.6.1 个人安装RabbitMQ总结: 安装编译工具 yum -y install make gcc gcc-c++ kernel-devel m4 nc ...
- Lucene学习总结
在使用Lucene前,我们先大致熟悉下Lucene的几个核心类. 核心索引类: public class IndexWriter 索引过程的中心组件,把它想象成一个可以对索引进行写操作的对象. pub ...
- Abot爬虫和visjs
1. 引言 最近接触Abot爬虫也有几天时间了,闲来无事打算从IMDB网站上爬取一些电影数据玩玩.正好美国队长3正在热映,打算爬取漫威近几年的电影并用vis这个JS库呈现下漫威宇宙的相关电影. Abo ...
- ReactJs入门教程
现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领 ...
- Unity-Animator在Editor状态下的单个/批量预览工具
网上有一个版本,但是调了半天用不了.于是自己动手写了一个 单个预览 批量预览 使用: 下载地址: http://files.cnblogs.com/files/hont/AnimatorClipPre ...
- (转)使用myeclipse生成实体类和hibernate映射文件
转至:http://blog.sina.com.cn/s/blog_9658bdb40100uiod.html 1.下载并安装myeclipse,如果已经安装,则忽略该步骤; 2.打开myeclips ...
- [问题2015S11] 复旦高等代数 II(14级)每周一题(第十二教学周)
[问题2015S11] 证明: 任一复方阵都相似于一个复对称阵. 举例说明: 存在实方阵, 它不相似于实对称阵. 问题解答请在以下网址下载:http://pan.baidu.com/share/ho ...