P3866 [TJOI2009]战争游戏

    • 27通过
    • 44提交
  • 题目提供者 elijahqi
  • 评测方式 云端评测
  • 标签 最大流 最小割 各省省选 2009 天津 高性能
  • 难度 省选/NOI-
  • 时空限制 1000ms / 128MB

题解

  • 提示:收藏到任务计划后,可在首页查看。
  • 最新讨论 显示

    推荐的相关题目 显示

    题目背景

    小R正在玩一个战争游戏。游戏地图是一个M行N列的矩阵,每个格子可能是障碍物,也可能是空地,在游戏开始时有若干支敌军分散在不同的空地格子中。每支敌军都可以从当前所在的格子移动到四个相邻的格子之一,但是不能移动到包含障碍物的格子。如果敌军移动出了地图的边界,那么战争就失败了。

    题目描述

    现在你的任务是,在敌军开始移动前,通过飞机轰炸使得某些原本是空地的格子变得不可通行,这样就有可能阻止敌军移出地图边界(出于某种特殊的考虑,你不能直接轰炸敌军所在的格子)。由于地形不同的原因,把每个空地格子轰炸成不可通行所需的炸药数目可能是不同的,你需要计算出要阻止敌军所需的最少的炸药数。

    输入输出格式

    输入格式:

    输入文件的第一行包含两个数M和N,分别表示矩阵的长和宽。接下来M行,每行包含用空格隔开的N个数字,每个数字表示一个格子的情况:若数字为-1,表示这个格子是障碍物;若数字为0,表示这个格子里有一支敌军;若数字为一个正数x,表示这个格子是空地,且把它轰炸成不可通行所需的炸药数为x。

    输出格式:

    输出一个数字,表示所需的最少炸药数。数据保证有解存在。

    输入输出样例

    输入样例#1: 复制
    4 3
    1 2 1
    1 10 1
    1 0 -1
    1 1 1
    输出样例#1: 复制
    6

    说明

    对50%的数据,1 ≤ M,N ≤ 10

    对100%的数据,1 ≤ M,N ≤ 30

    矩阵里的每个数不超过100

    提示
    标程仅供做题后或实在无思路时参考。
    请自觉、自律地使用该功能并请对自己的学习负责。
    如果发现恶意抄袭标程,将按照I类违反进行处理。