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的集合 终于有点明白线性基是什么了...等会再整理 求一个权值最大的线性无关子集 线性无关子集满足拟阵的性质,贪心选择权值最大的,用高 ...
随机推荐
- NUCLE F072 Pin说明http://home.cnblogs.com/group/topic/8550.html
LEDs LD1 1 RED on - PC和ST_Link通讯初始化成功 2 GREEN ON ...
- 方法过滤器,分布式缓存 Memcached实现Session解决方案
控制器-〉方法过滤器-〉controller-> 方法 所以通过建立controller基类的方法进行方法过滤,所有控制器先执行基类的OnActionExecuting 方法. using Sp ...
- 使用规则引擎Drools计算圆周率PI
实际上是使用规则引擎能够更新工作内存区重新匹配规则实现迭代功能. 使用了策略模式实现. <规则引擎与RETE算法介绍> PPT : http://files.cnblogs.com/lov ...
- 如何知道btree树的高度
来自网络,总结到这里: 当我想看btree树高度的时候,筛选出来这篇文章"为什么 B-tree 在不同著作中度的定义有一定差别?",知道了高度的算法是这个公式:但是里面又提高t和出 ...
- 阿里云oss上传图片
1.首先我们要下载阿里云oss的sdk包:(可以下载原版的,改过的通用版在本人的百度云,嘎嘎嘎~) 2.下载好之后放到项目文件目录里面 3.要在需要的控制器引用这个sdk文件例如: include(& ...
- CSS 盒子模型概述
一.简介 CSS 盒子模型(元素框)由元素内容(content).内边距(padding).边框(border).外边距(margin)组成. 盒子模型,最里面的部分是实际内容:直接包围内 ...
- C# Reportviewer 固定表头
RDLC报表固定每页都显示表头以XML方式打开rdlc文件查找到<TablixRowHierarchy> <TablixMembers> <TablixMember> ...
- 微信 xml 转 Map
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; xml + ...
- HTML中IFrame父窗口与子窗口相互操作
一.Iframe篇 //&&&&&&&&&&&&&&&&&&am ...
- python的ujson与simplejson
一.使用了simplejson import simplejson as json 二.使用ujson import ujson as json 参考链接:下载win下的:ujson