Advertisement

hdoj_1257最小覆盖系统

阅读量:

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1257

对题意的理解可以表述为:提供一组数值,要求将其划分为若干组,划分的标准是每组中的元素必须按照单调递减的顺序排列,这样才可以确保一个拦截系统能够成功拦截该组内的所有导弹。需要求解的是完成这种划分所需的最小组数。

方法一:直接模拟人工进行分组的操作

例如,对于数字序列389 207 155 300 299 170 158 65的分组过程如下所示:

首先,依次查看这些数值,将389、207、155以及65归为第一组,然后处理剩下的数值。

接着,将300、299、170和158归为第二组。

最终得出的结果是至少需要配置2个拦截系统。

C++代码如下

复制代码
 #include<iostream>

    
 #include<algorithm>
    
 using namespace std;
    
  
    
 int main()
    
 {
    
 	int n;
    
 	while(cin >> n)
    
 	{
    
 		int *a = new int[n];
    
 		for(int i=0;i<n;i++)
    
 			cin >> a[i];//输入数据 
    
 		int 

全部评论 (0)

还没有任何评论哟~