HDU 5547 暴力
Sudoku
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)
Total Submission(s): 1064 Accepted Submission(s): 362
Actually, Yi Sima was playing it different. First of all, he tried to generate a 4×4 board with every row contains 1 to 4, every column contains 1 to 4. Also he made sure that if we cut the board into four 2×2 pieces, every piece contains 1 to 4.
Then, he removed several numbers from the board and gave it to another guy to recover it. As other counselors are not as smart as Yi Sima, Yi Sima always made sure that the board only has one way to recover.
Actually, you are seeing this because you've passed through to the Three-Kingdom Age. You can recover the board to make Yi Sima happy and be promoted. Go and do it!!!
It's guaranteed that there will be exactly one way to recover the board.
****
2341
4123
3214
*243
*312
*421
*134
*41*
**3*
2*41
4*2*
1432
2341
4123
3214
Case #2:
1243
4312
3421
2134
Case #3:
3412
1234
2341
4123
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
char s[][];
int ans[][];
int l[][];
int r[][];
int p[][];
int judge(int x,int y)
{
if(x<&&y<) return ;
if(x>=&&y<) return ;
if(x<&&y>=) return ;
if(x>=&&y>=) return ;
}
void solve()
{
for(int i = ; i<; i++)
for(int j = ; j<; j++)
{
l[i][ans[i][j]] = ;
}
for(int j = ; j<; j++)
for(int i = ; i<; i++)
{
r[j][ans[i][j]] = ;
}
for(int i = ; i<; i++)
{
for(int j = ; j<; j++)
{
p[judge(i,j)][ans[i][j]] = ;
}
}
int flag = ;
int count = ;
while(flag)
{
flag = ;
for(int i = ; i<; i++)
{
for(int j = ; j<; j++)
{
count = ;
if(ans[i][j]) continue;
for(int k = ; k<=; k++)
{
if(l[i][k]==&&r[j][k]==&&p[judge(i,j)][k]==)
count++;
}
if(count == )
{
flag = ;
for(int k = ; k<=; k++)
{
if(l[i][k]==&&r[j][k]==&&p[judge(i,j)][k]==)
{
ans[i][j] = k;
l[i][k] = ;
r[j][k] = ;
p[judge(i,j)][k] = ;
}
}
}
}
}
}
}
int main()
{
int t,kase = ;
scanf("%d",&t);
while(t--)
{
memset(l,,sizeof(l));
memset(r,,sizeof(r));
memset(ans,,sizeof(ans));
memset(p,,sizeof(p));
for(int i = ; i<; i++)
{
scanf("%s",s[i]);
}
for(int i = ; i<; i++)
{
for(int j = ; j<; j++)
{
if(s[i][j] == '*') ans[i][j] = ;
else ans[i][j] = s[i][j] - '';
}
}
solve();
printf("Case #%d:\n",++kase);
for(int i = ; i<; i++)
{
for(int j = ; j<; j++)
{
printf("%d",ans[i][j]);
}
printf("\n");
}
}
return ;
}
HDU 5547 暴力的更多相关文章
- HDU 5547 Sudoku (暴力)
题意:数独. 析:由于只是4*4,完全可以暴力,要注意一下一些条件,比如2*2的小方格也得是1234 代码如下: #pragma comment(linker, "/STACK:102400 ...
- E - Sudoku HDU - 5547 (搜索+暴力)
题目链接:https://cn.vjudge.net/problem/HDU-5547 具体思路:对于每一位上,我们可以从1到4挨着去试, 具体判断这一位可不可以的时候,看当前这一位上的行和列有没有冲 ...
- HDU - 5547 数独(回溯法)
题目链接:HDU-5547 http://acm.hdu.edu.cn/showproblem.php?pid=5547 正所谓:骗分过样例,暴力出奇迹. 解题思想(暴力出奇迹(DFS+回溯)): 1 ...
- HDU - 5547 Sudoku(数独搜索)
Description Yi Sima was one of the best counselors of Cao Cao. He likes to play a funny game himself ...
- HDU 5547 Sudoku(DFS)
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=5547 题目: Sudoku Time Limit: 3000/1000 MS (Java/Others ...
- HDU 6351暴力枚举 6354计算几何
Beautiful Now Time Limit: 5000/2500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)T ...
- The 2015 China Collegiate Programming Contest H. Sudoku hdu 5547
Sudoku Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Total Subm ...
- HDU 5944 暴力
Fxx and string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)T ...
- hdu 4039 暴力
思路:用map将每个字符串与一个数字进行对应,然后暴力统计就好了 #include<cstring> #include<iostream> #include<cstdio ...
随机推荐
- 通过C++修改系统时间代码
#include <windows.h>#include <stdio.h>#include <iostream>using namespace std;int m ...
- git fetch pull checkout区别
Git中从远程的分支获取最新的版本到本地有这样2个命令: 1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge <p style="margin-top: 0 ...
- SharePoint 2010 Modal Dialog
SharePoint 2010 Modal Dialog Tweet Modal dialog play very important role to improve the user exper ...
- Android数据库--Sqlcipher的使用(二)
1.使用Sqlcipher对数据库加密,并结合ORM框架LitePal进行使用. 2.对LitePal的使用我就不在讲解了,大家可以参考下面七篇博客: http://blog.csdn.net/guo ...
- Road to Cinema
Road to Cinema time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- WordPress 邮箱防抓取
现在网络上有很多爬虫,专门四处搜集网站代码中出现的邮箱,搜集到了之后就批量出售或者发送垃圾邮件.很多人都把邮箱中的 “@” 换成 “#”,但这样对用户不太方便,而且这种方法很多机器人都可以识破,同样被 ...
- 简单hash[或者是哈希思想]
题目链接 /* 有一个长度为n的只包含小写字母的字符串s,有m次操作,每次输入2个字符 A , B表示将s中的全部字符A变成B,B变成A. char sky[30],顺序记录每个字母的映射,在sky[ ...
- Dynamic Performance Tables not accessible Automatic Statistics disabled for this session
使用oracle时候统计会出现这个提示 Dynamic Performance Tables not accessible Automatic Statistics disabled for this ...
- java数据结构之二叉树的实现
java二叉树的简单实现,可以简单实现深度为n的二叉树的建立,二叉树的前序遍历,中序遍历,后序遍历输出. /** *数据结构之树的实现 *2016/4/29 * **/ package cn.Link ...
- python 中调用shell命令
subprocess模块 根据Python官方文档说明,subprocess模块用于取代上面这些模块.有一个用Python实现的并行ssh工具—mssh,代码很简短,不过很有意思,它在线程中调用sub ...