题目名称 890. 素数方阵
输入输出 prime3.in/out
难度等级 ★★★
时间限制 2000 ms (2 s)
内存限制 128 MiB
测试数据 10
题目来源 Gravatarsywgz 于2012-07-11加入
开放分组 全部用户
提交状态
分类标签
IOI USACO 搜索法
分享题解
通过:30, 提交:79, 通过率:37.97%
Gravatarcarryt 100 0.088 s 3.56 MiB C++
Gravatarhinanawi 100 0.263 s 14.81 MiB C++
Gravatar张灵犀不和我一般见识真可怕呢(笑 100 1.321 s 0.95 MiB C++
Gravatarmikumikumi 100 1.403 s 0.95 MiB C++
Gravatar任杰 100 1.948 s 9.39 MiB C++
Gravatar任杰 100 2.039 s 9.40 MiB C++
Gravatar任杰 100 2.391 s 9.40 MiB C++
Gravatar任杰 100 2.396 s 9.40 MiB C++
Gravatar任杰 100 2.397 s 9.40 MiB C++
Gravatar任杰 100 2.397 s 9.40 MiB C++
本题关联比赛
至少完成十道练习
关于 素数方阵 的近10条评论(全部评论)
Tire+加对角线剪支可以过USACO,否则这里过了,USACO仍然tle
Gravatar任杰
2015-12-18 19:57 2楼
这游戏真难玩……
trie储存所有合法素数,按照第一行->第一列->第二行->第二列……顺序搜,搜行/列的时候也用列/行剪枝。
然后!!!!!遍历vector比遍历数组慢一万倍啊一万倍……说好的快速随机访问呢尼玛……(╯‵□′)╯︵┻━┻
Gravatarcstdio
2013-11-03 10:38 1楼

890. 素数方阵

★★★   输入文件:prime3.in   输出文件:prime3.out   简单对比
时间限制:2 s   内存限制:128 MiB

【题目描述】

在下面的方格中,每行,每列,以及两条对角线上的数字可以看作是五位的素数。方格中的行按照从左到右的顺序组成一个素数,而列按照从上到下的顺序。两条对角线也是按照从左到右的顺序来组成。

+---+---+---+---+---+
| 1 | 1 | 3 | 5 | 1 |
+---+---+---+---+---+
| 3 | 3 | 2 | 0 | 3 |
+---+---+---+---+---+
| 3 | 0 | 3 | 2 | 3 |
+---+---+---+---+---+
| 1 | 4 | 0 | 3 | 3 |
+---+---+---+---+---+
| 3 | 3 | 3 | 1 | 1 |
+---+---+---+---+---+ 

这些素数各个数位上的和必须相等。

左上角的数字是预先定好的。

一个素数可能在方阵中重复多次。

如果不只有一个解,将它们全部输出(按照这25个数字组成的25位数的大小排序)。

一个五位的素数开头不能为0(例如:00003 不是五位素数)

【输入格式】

一行包括两个被空格分开的整数:各个位的数字和 和左上角的数字。

【输出格式】

对于每一个找到的方案输出5行,每行5个字符, 每行可以转化为一个5位的质数.在两组方案中间输出一个空行. 如果没有解就单独输出一行"NONE"。

【输入样例】

11 1

【输出样例】

11351
14033
30323
53201
13313

11351
33203
30323
14033
33311

13313
13043
32303
50231
13331