题目名称 1816. [SCOI 2009]围豆豆
输入输出 bean.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarcstdio 于2014-11-17加入
开放分组 全部用户
提交状态
分类标签
动态规划 状态压缩
分享题解
通过:13, 提交:18, 通过率:72.22%
Gravatar神利·代目 100 0.118 s 0.52 MiB C++
Gravatarcstdio 100 0.139 s 0.75 MiB C++
GravatarceerRep 100 0.157 s 0.75 MiB C++
Gravatar神利·代目 100 0.170 s 1.30 MiB C++
Gravatarzzzzzfy 100 0.243 s 1.02 MiB C++
GravatarRita 100 0.245 s 0.80 MiB C++
Gravatar_Horizon 100 0.263 s 12.30 MiB C++
Gravatarstdafx.h 100 0.265 s 1.02 MiB C++
Gravatarwjyi 100 0.308 s 2.12 MiB C++
Gravatarchaijing 100 0.322 s 0.87 MiB C++
关于 围豆豆 的近10条评论(全部评论)
回复 @cstdio :
赞一个、
Gravatarstone
2016-03-27 19:39 2楼
仅“向右走入”或“向左走出”时异或状态,挺优美的办法……
Gravatarcstdio
2014-11-17 15:54 1楼

1816. [SCOI 2009]围豆豆

★★★   输入文件:bean.in   输出文件:bean.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

是不是平时在手机里玩吃豆豆游戏玩腻了呢?最近MOKIA手机上推出了一种新的围豆豆游戏,大家一起来试一试吧。

游戏的规则非常简单,在一个N×M的矩阵方格内分布着D颗豆子,每颗豆有不同的分值Vi。游戏者可以选择任意一个方格作为起始格,每次移动可以随意的走到相邻的四个格子,直到最终又回到起始格。最终游戏者的得分为所有被路径围住的豆豆的分值总和减去游戏者移动的步数。矩阵中某些格子内设有障碍物,任何时刻游戏者不能进入包含障碍物或豆子的格子。游戏者可能的最低得分为0,即什么都不做。

注意路径包围的概念,即某一颗豆在路径所形成的多边形(可能是含自交的复杂多边形)的内部。下面有两个例子:

第一个例子中,豆在路径围成的矩形内部,所以豆被围住了。第二个例子中,虽然路径经过了豆的周围的8个格子,但是路径形成的多边形内部并不包含豆,所以没有围住豆子。

布布最近迷上了这款游戏,但是怎么玩都拿不了高分。聪明的你决定写一个程序来帮助他顺利通关。

【输入格式】

输入文件bean.in第一行两个整数N和M,为矩阵的边长。

第二行一个整数D,为豆子的总个数。

第三行包含D个整数V1到VD,分别为每颗豆子的分值。

接着N行有一个N×M的字符矩阵来描述游戏矩阵状态,0表示空格,#表示障碍物。而数字1到9分别表示对应编号的豆子。

【输出格式】

输出文件bean.out仅包含一个整数,为最高可能获得的分值。

【样例输入】

3 8

3

30 -100 30

00000000

010203#0

00000000

【样例输出】

38

【提示】

50%的数据满足1≤D≤3。

100%的数据满足1≤D≤9,1≤N, M≤10,-10000≤Vi≤10000。

【来源】

四川OI 2009