问题:一个博物馆收藏了不同的火车,不同地区的火车需要的铁路宽度是不一样的。现在这个博物馆为了陈列火车需要一些铁路。 每条铁路可以看作是由两根平行钢轨组成的,只要把两条钢轨的距离摆放合适了,就可以放置对应的火车。
这个博物馆每次只展示一列火车,所以可以减少所需钢轨的数量。比如,如果有n列火车,他们需要的铁路宽度都不相同,那么只需要n+1条轨道就一定可以让每列火车都能够摆放。
方法如下:把一条轨道放在最左边,剩下的n条钢轨里, 第i条距离最左边轨道的距离和第 i 列火 车需要的铁路宽度一样, 这样 以让每列火车都能够摆放.方法如下:把-条轨道在最左边,剩下的n条钢轨里,第i条距离最左边轨道的距离和第i列火车需要的铁路宽度--样,这样
n+1条铁轨就能够放 下所有列车了。
但是,巧妙的安排可以让所需的钢轨数量小于n + 1。 你的任务,就是给定一些火车所需要的铁路宽度, 找出所需的最少钢轨数目,使得每列火车都能够放置。
[输入形式]
每个测试用例第一行包含一个整数n, 表示火车所需要的铁路宽度的个数。接下来的一行有1 < =n <= 8个1000 到5000 之间的整数, 每个整数表示一个所需要 的铁路宽度的个数.
[输出形式]
对每个测试用例输出一个整数,表示所需要的钢轨数量。
[样例输入]
4
1524 1520 1609 1435 1524 1520 1609 1435
[样例输出]
4
源码:
#include<bits/stdc++.h>
using namespace std;
#define sz(x) (x).size()
const int N = 5e6+10;
int a[10],n,a
本文发布于:2024-02-03 06:22:14,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170691253249217.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |