P1074 靶形数独 - 40
#include <bits/stdc++.h>
#define searchnext(x, y) y == 9 ? search(x + 1, 1) : search(x, y + 1)
using namespace std;
long long ans = 0;
int a[10][10];
void search(int, int);
void calc() {
long long tmp = 0;
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
if (i == 1 || i == 9 || j == 1 || j == 9) {
tmp += 6 * a[i][j];
} else if (abs(i - 9) == 1 || abs(i - 9) == 7 || abs(j - 9) == 1 ||
abs(j - 9) == 7) {
tmp += 7 * a[i][j];
} else if (abs(i - 9) == 2 || abs(i - 9) == 6 || abs(j - 9) == 2 ||
abs(j - 9) == 6) {
tmp += 8 * a[i][j];
} else if (abs(i - 9) == 5 || abs(i - 9) == 3 || abs(j - 9) == 5 ||
abs(j - 9) == 3) {
tmp += 9 * a[i][j];
} else
tmp += 10 * a[i][j];
}
}
ans = max(ans, tmp);
}
bool pd(int x, int y, int k) {
for (int i = 1; i <= 9; i++)
if (a[x][i] == k || a[i][y] == k)
return 0;
for (int i = (x - 1) / 3 * 3 + 1; i <= (x - 1) / 3 * 3 + 3; i++)
for (int j = (y - 1) / 3 * 3 + 1; j <= (y - 1) / 3 * 3 + 3; j++)
if (a[i][j] == k)
return 0;
return 1;
}
void search(int x, int y) {
if (x == 10 && y == 1)
calc();
if (a[x][y] != 0) {
searchnext(x, y);
} else {
for (int i = 9; i >= 1; i--)
if (pd(x, y, i)) {
a[x][y] = i;
searchnext(x, y);
a[x][y] = 0;
}
}
}
int main() {
freopen("input.in", "r", stdin);
for (int i = 1; i <= 9; i++)
for (int j = 1; j <= 9; j++)
scanf("%d", &a[i][j]);
search(1, 1);
if (ans)
cout << ans;
else
cout << -1;
return 0;
}
P1074 靶形数独 - 40的更多相关文章
- 洛谷——P1074 靶形数独
P1074 靶形数独 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z ...
- P1074 靶形数独
P1074 靶形数独正着搜80分,完全倒置95分,完全倒置后左右再倒置,就会A掉,到时候脑洞要大一些. #include<iostream> #include<cstdio> ...
- 洛谷P1074 靶形数独 [搜索]
题目传送门 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z 博士拿出了 ...
- 洛谷 P1074 靶形数独 Label:search 不会
题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z 博士拿出了他最近发明的 ...
- P1074 靶形数独题解
题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博士拿出了他最近发明的“靶 ...
- P1074 靶形数独 dfs回溯法
题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博士拿出了他最近发明的“靶 ...
- [洛谷P1074] 靶形数独
洛谷题目链接:靶形数独 题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博 ...
- 洛谷 P1074 靶形数独
题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z 博士拿出了他最近发明的 ...
- [NOIP2009] 提高组 洛谷P1074 靶形数独
题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z 博士拿出了他最近发明的 ...
随机推荐
- 【noip2014T3】
上文有提到noip2014还有没A的嘛..就先把这个坑给填了 flappy bird好sad啊 还是先做解方程 八中的数据好强了,然而我最后凑了四个质数就A了,感谢shy! 作为联赛最后一题,学习它的 ...
- 关于sharedPreferences的使用
在登录中,android 为什么能够保存上次的登录信息,就是使用了sharedPrerences进行获取和存储 比如记录了之前登录过的用户名.登录时间.登录详情等等
- Jquery和JS获取ul中li标签
js 获取元素下面所有的li var content=document.getElementById("content"); var items=content.getElemen ...
- 类型“System.Windows.Markup.IQueryAmbient”在未被引用的程序集中定义
错误 1 类型"System.Windows.Markup.IQueryAmbient"在未被引用的程序集中定义.必须添加对程序集"System.Xaml, ...
- poj2386(简单dfs)
就是求图中有多少个水洼.对图进行dfs遍历,并把是水洼的地方全部标记.然后从下一个是水哇的地方再进行dfs. #include <cstdio> #include <iostream ...
- 【Oralce】时间操作
加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1 ...
- Mishka and Divisors[CodeForces Round #365 Div.2]
http://codeforces.com/contest/703/problem/E 题意:给定一个最多个数的序列,从中选出最少个数的数字,使得他们的乘积是k的倍数,若有多种选择方式,输出选出数字和 ...
- mongodb新手入门,mongodb命令学习
下面来总结一下mongodb新手入门的常用命令吧.要是您是mongodb新手,可以看下. 1,show dbs 查询mongodb里面的数据库列表 如果想查看当前连接在哪个数据库下面,可以直接输入db ...
- React 开发注意事项,注意点
react优势: 仅仅只要表达出你的应用程序在任一个时间点应该长的样子,然后当底层的数据变了,React 会自动处理所有用户界面的更新. 数据变化后,React 概念上与点击“刷新”按钮类似,但仅会更 ...
- hdu2094 set初体验
有一群人,打乒乓球比赛,两两捉对撕杀,每两个人之间最多打一场比赛.球赛的规则如下:如果A打败了B,B又打败了C,而A与C之间没有进行过比赛,那么就认定,A一定能打败C.如果A打败了B,B又打败了C,而 ...