题目名称 | 611. 机房 |
---|---|
输入输出 | orz.in/out |
难度等级 | ★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 10 |
题目来源 | cqw 于2011-11-08加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:74, 提交:123, 通过率:60.16% | ||||
cy | 100 | 0.000 s | 0.00 MiB | C++ |
Pine | 100 | 0.000 s | 0.03 MiB | C++ |
dateri | 100 | 0.003 s | 0.06 MiB | C++ |
竹篱 | 100 | 0.021 s | 0.07 MiB | Pascal |
521 | 100 | 0.025 s | 0.13 MiB | C++ |
竹篱 | 100 | 0.033 s | 0.09 MiB | Pascal |
竹篱 | 100 | 0.033 s | 0.09 MiB | Pascal |
竹篱 | 100 | 0.035 s | 0.09 MiB | Pascal |
竹篱 | 100 | 0.036 s | 0.09 MiB | Pascal |
竹篱 | 100 | 0.036 s | 0.09 MiB | Pascal |
本题关联比赛 | |||
20111108 | |||
20111108 |
关于 机房 的近10条评论(全部评论) | ||||
---|---|---|---|---|
对拍真是好东西!
状态转移方程写错了... | ||||
VIP 把1,2变成0,1后只需要一个数组...判断条件改了半天QAQ...
| ||||
| ||||
mark
return 0;
2014-10-22 15:56
4楼
| ||||
f[i]表示到i为止的最佳方案。对i,for j=i-1 to 0判断。如果j+1 to i可分配一个教室,则判断min{f[j]+1,f[i]}的大小。
将f数组初始化为最大值,f[0]=0,最后输出f[n]即可。 挺简单的DP题,思路很裸,也不需要特别高的代码能力。就看比赛的时候能不能想得到了。
gungnir
2013-10-20 15:46
3楼
| ||||
唉,orz挺简单的,但是有一点写错了,,,,
| ||||
线性(过全)或区间型(过不全)动归:
状态:(过不全) f[i][j]表示从i开始的j个数分配的最小机房数。 状态:(过全) f[i]表示从首部到i为止的人分配的最小机房数。 加求和预处理, AC。 |
Description
神牛有很多…当然…每个同学都有自己衷心膜拜的神牛.
某学校有两位神牛,神牛甲和神牛乙。新入学的N位同学们早已耳闻他们的神话。所以,已经衷心地膜拜其中一位了。现在,老师要给他们分机房。但是,要么保证整个机房都是同一位神牛的膜拜者,或者两个神牛的膜拜者人数差不超过M。另外,现在N位同学排成一排,老师只会把连续一段的同学分进一个机房。老师想知道,至少需要多少个机房。
Input Format
输入文件第一行包括N和M。
之后N行,每行一个整数,1表示神牛甲的崇拜者,2表示神牛乙的崇拜者。
Output Format
输出一个整数,表示最小需要机房的数量。
Sample Input
5 1
2
2
1
2
2
Sample Output
2
Data Limit
对于30%的数据,有1 ≤ N ,M≤ 50;
对于100%的数据,有1 ≤ N,M ≤ 2500。