Problem E: Su-Su-Sudoku/center>

题目连接:

http://codeforces.com/gym/100646/attachments

Description

By now, everyone has played Sudoku: you’re given a 9-by-9 grid of boxes which you are to fill in with

the digits 1 through 9 so that 1) every row has all nine digits, 2) every column has all nine digits, and

3) all nine 3-by-3 subgrids have all nine digits. To start the game you are given a partially completed

grid and are asked to fill in the remainder of the boxes. One such puzzle is shown below.

4 8 1 2 5 3 6 9 7

2 6 7 9 4 8 1 5

5 3 9 6 7 1 2 4

6 5 4 3 8 9 7 1 2

9 8 7 4 5 6 3

1 7 3 5 6 2 8 4 9

7 2 1 3 6 9 5 8

3 1 5 8 9 7 4 2 6

8 9 6 4 2 5 3 7 1

In this problem, you will be given Sudoku grids which you have nearly completed; indeed you’ve filled

in every box except five. You are asked to complete the grid, or determine that it’s impossible. (You

might have already made an error!)

Input

The first line of input will contain a positive integer indicating the number of test cases to follow. Each

test case will be a nearly completed Sudoku grid consisting of 9 lines, each containing 9 characters from

the set of digits 0 through 9. There will be exactly five 0’s in each test case, indicating the five unfilled

boxes.

Output

Output for each test case should be either

Could not complete this grid.

if it is impossible to complete the grid according to the rules of the game, or the completed grid, in the

form given below. (There are no blank spaces in the output.) If there is a way to complete the grid, it

will be unique. Separate test cases with a blank line.

Sample Input

2

481253697

267948105

539671204

654389712

908704563

173562849

702136958

315897426

896425371

481253697

267948105

539671284

654289710

908704562

173562849

702136958

315897426

896425371

Sample Output

481253697

267948135

539671284

654389712

928714563

173562849

742136958

315897426

896425371

Could not complete this grid.

Hint

题意

给你个数独,问你有没有解。

但是这个数独最多只有5个空位。

题解:

智障题,只有五个空,那就XJBdfs就好了

代码

#include<bits/stdc++.h>
using namespace std; string s[9];
struct node{
int x,y;
node(int X,int Y):x(X),y(Y){};
};
vector<node> V;
int flag = 0;
int vis[10];
bool check(){
for(int i=0;i<9;i++){
for(int j=0;j<10;j++)vis[j]=0;
for(int j=0;j<9;j++){
vis[s[i][j]-'0']=1;
}
for(int j=1;j<=9;j++)if(!vis[j])return false;
}
for(int i=0;i<9;i++){
for(int j=0;j<10;j++)vis[j]=0;
for(int j=0;j<9;j++){
vis[s[j][i]-'0']=1;
}
for(int j=1;j<=9;j++)if(!vis[j])return false;
}
for(int i=0;i<10;i++)vis[i]=0;
vis[s[0][0]-'0']=1;
vis[s[0][1]-'0']=1;
vis[s[0][2]-'0']=1;
vis[s[1][0]-'0']=1;
vis[s[1][1]-'0']=1;
vis[s[1][2]-'0']=1;
vis[s[2][0]-'0']=1;
vis[s[2][1]-'0']=1;
vis[s[2][2]-'0']=1;
for(int j=1;j<=9;j++)if(!vis[j])return false;
for(int i=0;i<10;i++)vis[i]=0;
vis[s[0][3]-'0']=1;
vis[s[0][4]-'0']=1;
vis[s[0][5]-'0']=1;
vis[s[1][3]-'0']=1;
vis[s[1][4]-'0']=1;
vis[s[1][5]-'0']=1;
vis[s[2][3]-'0']=1;
vis[s[2][4]-'0']=1;
vis[s[2][5]-'0']=1;
for(int j=1;j<=9;j++)if(!vis[j])return false;
for(int i=0;i<10;i++)vis[i]=0;
vis[s[0][6]-'0']=1;
vis[s[0][7]-'0']=1;
vis[s[0][8]-'0']=1;
vis[s[1][6]-'0']=1;
vis[s[1][7]-'0']=1;
vis[s[1][8]-'0']=1;
vis[s[2][6]-'0']=1;
vis[s[2][7]-'0']=1;
vis[s[2][8]-'0']=1;
for(int j=1;j<=9;j++)if(!vis[j])return false; for(int i=0;i<10;i++)vis[i]=0;
vis[s[3][0]-'0']=1;
vis[s[3][1]-'0']=1;
vis[s[3][2]-'0']=1;
vis[s[4][0]-'0']=1;
vis[s[4][1]-'0']=1;
vis[s[4][2]-'0']=1;
vis[s[5][0]-'0']=1;
vis[s[5][1]-'0']=1;
vis[s[5][2]-'0']=1;
for(int j=1;j<=9;j++)if(!vis[j])return false;
for(int i=0;i<10;i++)vis[i]=0;
vis[s[3][3]-'0']=1;
vis[s[3][4]-'0']=1;
vis[s[3][5]-'0']=1;
vis[s[4][3]-'0']=1;
vis[s[4][4]-'0']=1;
vis[s[4][5]-'0']=1;
vis[s[5][3]-'0']=1;
vis[s[5][4]-'0']=1;
vis[s[5][5]-'0']=1;
for(int j=1;j<=9;j++)if(!vis[j])return false;
for(int i=0;i<10;i++)vis[i]=0;
vis[s[3][6]-'0']=1;
vis[s[3][7]-'0']=1;
vis[s[3][8]-'0']=1;
vis[s[4][6]-'0']=1;
vis[s[4][7]-'0']=1;
vis[s[4][8]-'0']=1;
vis[s[5][6]-'0']=1;
vis[s[5][7]-'0']=1;
vis[s[5][8]-'0']=1;
for(int j=1;j<=9;j++)if(!vis[j])return false; for(int i=0;i<10;i++)vis[i]=0;
vis[s[6][0]-'0']=1;
vis[s[6][1]-'0']=1;
vis[s[6][2]-'0']=1;
vis[s[7][0]-'0']=1;
vis[s[7][1]-'0']=1;
vis[s[7][2]-'0']=1;
vis[s[8][0]-'0']=1;
vis[s[8][1]-'0']=1;
vis[s[8][2]-'0']=1;
for(int j=1;j<=9;j++)if(!vis[j])return false;
for(int i=0;i<10;i++)vis[i]=0;
vis[s[6][3]-'0']=1;
vis[s[6][4]-'0']=1;
vis[s[6][5]-'0']=1;
vis[s[7][3]-'0']=1;
vis[s[7][4]-'0']=1;
vis[s[7][5]-'0']=1;
vis[s[8][3]-'0']=1;
vis[s[8][4]-'0']=1;
vis[s[8][5]-'0']=1;
for(int j=1;j<=9;j++)if(!vis[j])return false;
for(int i=0;i<10;i++)vis[i]=0;
vis[s[6][6]-'0']=1;
vis[s[6][7]-'0']=1;
vis[s[6][8]-'0']=1;
vis[s[7][6]-'0']=1;
vis[s[7][7]-'0']=1;
vis[s[7][8]-'0']=1;
vis[s[8][6]-'0']=1;
vis[s[8][7]-'0']=1;
vis[s[8][8]-'0']=1;
for(int j=1;j<=9;j++)if(!vis[j])return false; return true;
}
void dfs(int x){
if(flag)return;
if(x==V.size()){
if(check()){
for(int i=0;i<9;i++)
cout<<s[i]<<endl;
flag = 1;
return;
}
return;
}
for(int i=1;i<=9;i++){
s[V[x].x][V[x].y]=i+'0';
dfs(x+1);
if(flag)return;
s[V[x].x][V[x].y]='0';
}
}
void solve(){
flag = 0;
V.clear();
for(int i=0;i<9;i++)
cin>>s[i];
for(int i=0;i<9;i++){
for(int j=0;j<9;j++){
if(s[i][j]=='0'){
V.push_back(node(i,j));
}
}
}
dfs(0);
if(flag==0){
printf("Could not complete this grid.\n");
}
printf("\n");
}
int main(){
//freopen("1.in","r",stdin);
int t;
scanf("%d",&t);
while(t--)solve();
return 0;
}

Gym 100646 Problem E: Su-Su-Sudoku 水题的更多相关文章

  1. Gym 100646 Problem C: LCR 模拟题

    Problem C: LCR 题目连接: http://codeforces.com/gym/100646/attachments Description LCR is a simple game f ...

  2. 烟大 Contest1025 - 《挑战编程》第二章:数据结构 Problem A: Jolly Jumpers(水题)

    Problem A: Jolly Jumpers Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 10  Solved: 4[Submit][Status] ...

  3. 2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem L. Stock Trading Robot 水题

    Problem L. Stock Trading Robot 题目连接: http://www.codeforces.com/gym/100253 Description CyberTrader is ...

  4. 烟大 Contest1024 - 《挑战编程》第一章:入门 Problem C: The Trip(水题)

    Problem C: The Trip Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 19  Solved: 3[Submit][Status][Web ...

  5. Gym 100507L Donald is a postman (水题)

    Donald is a postman 题目链接: http://acm.hust.edu.cn/vjudge/contest/126546#problem/L Description Donald ...

  6. Bracket Sequences Concatenation Problem CodeForces - 990C(括号匹配水题)

    明确一下  一个字符串有x左括号不匹配  和 另一个字符串有x个右括号不匹配  这俩是一定能够匹配的 脑子有点迷 emm... 所以统计就好了  统计x个左括号的有几个,x个右括号的有几个 然后 乘一 ...

  7. 【BZOJ】1603: [Usaco2008 Oct]打谷机(水题+dfs)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1603 这种水题... dfs没话说.. #include <cstdio> #inclu ...

  8. Codeforces Gym 102392F Game on a Tree (SEERC2019 F题) 题解

    题目链接:https://codeforces.com/gym/102392/problem/F 题意:被这题题意坑了很久,大意是说有一棵根为 \(1\) 的树,每个节点初始都是白色, \(Alice ...

  9. Codeforces Gym 100531G Grave 水题

    Problem G. Grave 题目连接: http://codeforces.com/gym/100531/attachments Description Gerard develops a Ha ...

随机推荐

  1. CodeForces 1059C

    Description Let's call the following process a transformation of a sequence of length nn . If the se ...

  2. HDU 4509 湫湫系列故事——减肥记II (简单模拟)

    题意:一天一共有1440分钟,主人公每天有n件事要做,给出这n件事开始跟结束的时间,然后让你求出,空闲的时间的总分钟数是多少. 解题报告:简单模拟,只要开个一维数组标记那个每个分钟是否是有事的就可以了 ...

  3. CF293B 方格(带技巧的搜索)

    solution: 首先我们根据一条路径上不能有两个相同颜色的格子可以得出: 对于两个格子 \((x_1 , y_1 )\) 和 \((x_2 , y_2 )\) 必须满足: \(x_1<x_2 ...

  4. CSS position:absolute浅析

    一.绝对定位的特征 绝对定位有着与浮动一样的特性,即包裹性和破坏性. 就破坏性而言,浮动仅仅破坏了元素的高度,保留了元素的宽度:而绝对定位的元素高度和宽度都没有了. 请看下面代码: <!DOCT ...

  5. c++ 函数指针简单实例

    一开始看函数指针的时候我是很懵的,因为不知道它有什么用,之后慢慢就发现了自己的愚昧无知. 假设我们想实现一个数据结构,比如二叉搜索树,堆.又或者是一个快排,归并排序. 我们一般是直接在两个数要比较的时 ...

  6. mybatis关联查询数据模型分析——(七)

    1.     数据模型分析思路 1.每张表记录的数据内容 分模块对每张表记录的内容进行熟悉,相当 于你学习系统 需求(功能)的过程. 2.每张表重要的字段设置 非空字段.外键字段 3.数据库级别表与表 ...

  7. 在一台win10上启动多个mysql

    1.因为项目需要用一个已经有数据的mysql,而我之前已经安装了一个mysql(之前的mysql上面也是有东西,不想删除)  想办法.... mysqld.exe --defaults-file=D: ...

  8. GaN助力运营商和基站OEM实现5G sub-6GHz和mmWave大规模MIMO

    到2021年,估计全球会有更多的人拥有移动电话(55亿),将超过用上自来水的人数(53亿).与此同时,带宽紧张的视频应用将进一步增加对移动网络的需求,其会占移动流量的78%.使用大规模多输入多输出(M ...

  9. zabbix报警Too many processes on zabbix server

    zabbix大量报警,运行进程过多,但实际有部分机器可以忽略,需要关闭相关的报警 Configuration-->Templates找到Template_Linux点该行的 Triggers选择 ...

  10. jquery实现模拟select下拉框效果

    <IGNORE_JS_OP style="WORD-WRAP: break-word"> <!DOCTYPE html PUBLIC "-//W3C// ...