题目名称 1861. [国家集训队2011]部落战争
输入输出 lanzerb.in/out
难度等级 ★★☆
时间限制 1000 ms (1 s)
内存限制 512 MiB
测试数据 20
题目来源 Gravatarcstdio 于2014-12-09加入
开放分组 全部用户
提交状态
分类标签
二分图 网络流
分享题解
通过:28, 提交:54, 通过率:51.85%
GravatarYoungsc 100 0.000 s 0.00 MiB C++
Gravatarnew ioer 100 0.008 s 0.53 MiB C++
GravatarFoenix 100 0.008 s 0.64 MiB C++
Gravatarwawcac 100 0.008 s 6.36 MiB C++
GravatarJSX 100 0.012 s 0.55 MiB C++
Gravatarcstdio 100 0.016 s 0.40 MiB C++
Gravatar 100 0.016 s 0.71 MiB C++
GravatarAnonymity 100 0.017 s 0.95 MiB C++
Gravatar_Horizon 100 0.019 s 24.33 MiB C++
Gravatar_Itachi 100 0.021 s 11.84 MiB C++
关于 部落战争 的近10条评论(全部评论)
Gravatar-1
2018-05-15 15:12 7楼
DAG的最小不相交路径覆盖
GravatarAnonymity
2017-11-06 14:34 6楼
回复 @mikumikumi :
这就像60*60=360,为了记住错误我在本子上写了60*60=360000
Gravatar半汪
2017-01-11 11:57 5楼
哈哈哈,连交三次,每次将边表大小调大一个数量级,结果一直90。。在意识到是maxn开小了(忘记拆点要乘2了,雾),把maxn乘了个2,结果我的边表的maxm=maxn*maxn,果断爆内存了。。
Gravatar_Itachi
2017-01-11 10:12 4楼
为什么我会把50*50算成250呢,真奇怪。。。
Gravatarmikumikumi
2016-03-19 15:28 3楼
图中有标号为0的点 + pre数组不memset为-1 = 作死
Gravatarnew ioer
2015-02-28 07:51 2楼
长度为N*M的数组开到500居然能得75分,666666666666666666666666
Gravatarcstdio
2014-12-09 15:26 1楼

1861. [国家集训队2011]部落战争

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

【试题来源】

2011中国国家集训队命题答辩

【问题描述】

lanzerb的部落在A国的上部,他们不满天寒地冻的环境,于是准备向A国的下部征战来获得更大的领土。
A国是一个M*N的矩阵,其中某些地方是城镇,某些地方是高山深涧无人居住。lanzerb把自己的部落分成若干支军队,他们约定:
1. 每支军队可以从任意一个城镇出发,并只能从上往向下征战,不能回头。途中只能经过城镇,不能经过高山深涧。
2. 如果某个城镇被某支军队到过,则其他军队不能再去那个城镇了。
3. 每支军队都可以在任意一个城镇停止征战。
4. 所有军队都很奇怪,他们走的方法有点像国际象棋中的马。不过马每次只能走1*2的路线,而他们只能走R*C的路线。
lanzerb的野心使得他的目标是统一全国,但是兵力的限制使得他们在配备人手时力不从心。假设他们每支军队都能顺利占领这支军队经过的所有城镇,请你帮lanzerb算算至少要多少支军队才能完成统一全国的大业。

【输入格式】

第一行包含4个整数M、N、R、C,意义见问题描述。
接下来M行每行一个长度为N的字符串。如果某个字符是'.',表示这个地方是城镇;如果这个字符时'x',表示这个地方是高山深涧。

【输出格式】

输出一个整数,表示最少的军队个数。

【样例输入一】

3 3 1 2
...
.x.
...

【样例输出一】

4

【样例输入二】

5 4 1 1
....
..x.
...x
....
x...

【样例输出二】

5
样例说明


【数据规模和约定】

30%的数据中,1<=M,N<=4,1<=R,C<=3。
70%的数据中,1<=M<=20,1<=N<=4,1<=R,C<=3。
100%的数据中,1<=M,N<=50,1<=R,C<=10。
100%的数据中,时间限制为1s。