| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 498 人关注过本帖
标题:一个比较难的问题,大家可以来看看
取消只看楼主 加入收藏
iphenix
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-6-30
收藏
 问题点数:0 回复次数:0 
一个比较难的问题,大家可以来看看

有一个集合V{0,1,2,3,4,......N} (N<1000)

有一个数组String a[],其中a的元素是由V的子集构成,a的长度为1000000;
举例来说
比如 a[0]=1|6|7 (其中|为分隔符)
     a[1]=2|10
     .
     .
     .
     a[m]=1|2|3|6|7
     .
     .
     .

     a[k]=100|101
     .
     .
     .
     a[1000000]=1|100|101|200
  a[m] 中包含了1、2、3、6、7,a[0]中包含了1、6、7,显然a[0]是a[m]的子集,此时则去掉数组元素a[m];
  a[k]中包含100、101,a[1000000]包含了1、100、101、200,显然a[k]是a[1000000]的子集,此时则去掉数组元素a[k];
   也就是说只要数组元素a[i]在a中含有a[i]的子集,则去掉a[i]。
处理完数组a后,输出新的数组。

要求:最坏情况下(1000000个元素互不为子集,输出新数组长度也为1000000个),要求处理数组时间规模不大于O(1000000*log1000000),具体如何实现,

[此贴子已经被作者于2006-7-11 9:57:11编辑过]

搜索更多相关主题的帖子: 工资 兼职 
2006-07-02 13:41
快速回复:一个比较难的问题,大家可以来看看
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038921 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved