题目名称 | 1731. [WC 2008]游览计划 |
---|---|
输入输出 | wc2008_trip.in/out |
难度等级 | ★★★ |
时间限制 | 1000 ms (1 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | cstdio 于2014-10-11加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:36, 提交:79, 通过率:45.57% | ||||
ztx | 100 | 0.061 s | 0.75 MiB | C++ |
cstdio | 100 | 0.067 s | 1.20 MiB | C++ |
dydxh | 100 | 0.070 s | 0.71 MiB | C++ |
hyghb | 100 | 0.073 s | 0.76 MiB | C++ |
Heaven | 100 | 0.075 s | 0.88 MiB | C++ |
_Horizon | 100 | 0.076 s | 1.44 MiB | C++ |
YPZ_979 | 100 | 0.077 s | 9.44 MiB | C++ |
Nawox | 100 | 0.079 s | 1.55 MiB | C++ |
Hzoi_moyi | 100 | 0.081 s | 0.88 MiB | C++ |
徐心雨 | 100 | 0.085 s | 1.27 MiB | C++ |
关于 游览计划 的近10条评论(全部评论) | ||||
---|---|---|---|---|
不明所以地上了插头
呵呵酵母菌
2018-01-26 20:46
4楼
| ||||
原来给图分层就能降低复杂度……
其实每次添加一个点就好了…… | ||||
用SPFA转移的某种奇怪状压DP……
枚举子集的方法(二进制表示): 枚举s加上枚举i的总复杂度是O(3^n)的 | ||||
@cstdio 给状压跪傻
Chenyao2333
2014-10-11 20:11
1楼
|
从未来过绍兴的小 D 有幸参加了Winter Camp 2008,他被这座历史名城的秀丽风景所吸引,强烈要求游览绍兴及其周边的所有景点。
主办者将绍兴划分为 N 行M 列(N×M)个方块,如下图(8×8)
景点含于方块内,且一个方块至多有一个景点。无景点的方块视为路。
为了保证安全与便利,主办方依据路况和治安状况,在非景点的一些方块内安排不同数量的志愿者;在景点内聘请导游(导游不是志愿者)。在选择旅游方案时,保证任意两个景点之间,存在一条路径,在这条路径所经过的每一个方块都有志愿者或者该方块为景点。既能满足选手们游览的需要,又能够让志愿者的总数最少。
例如,在上面的例子中,在每个没有景点的方块中填入一个数字,表示控制
该方块最少需要的志愿者数目:
图中用深色标出的方块区域就是一种可行的志愿者安排方案,一共需要20名志愿者。由图可见,两个相邻的景点是直接(有景点内的路)连通的(如沈园和八字桥)。
现在,希望你能够帮助主办方找到一种最好的安排方案。
输入文件中 trip.in 中第一行有两个整数,N 和M,描述方块的数目。
接下来 N 行,每行有M 个非负整数,如果该整数为0,则该方块为一个景点;否则表示控制该方块至少需要的志愿者数目。相邻的整数用(若干个)空格隔开,行首行末也可能有多余的空格。
输出一行一个整数,即最少的志愿者总数。
4 4 0 1 1 0 2 5 5 1 1 5 5 1 0 1 1 0
6
样例方案:
其中红色方块安排了志愿者。
所有的 10 组数据中N, M ,以及景点数 K 的范围规定如下:
输入文件中的所有整数均不小于 0 且不超过2^16。
Winter Camp 2008