求这道算法题的解法,想了好久都搞不定

bingfenghzy 2016-12-27 01:53:06
求这道算法题的解法:

有1到4500个数,不均匀分布在30000个组中,每个组的数据个数不定,组内数据没有重复,但组与组之间数据会有重复。

现在需要选出40个组,让他们的数据组合(去掉重复数据)后,在这4500个数中,出现最多。

求教这个算法应该如何写? 因为数据比较大,所以多次嵌套循环的方法行不通。

例如:1,2,3,4,5,6,7,8,9,10 这10个数,

现在不均匀分布在5个组:(1,3,5),(3,8),(1,7),(5,3),(9).
现在选出2个组,让这2个组的数据,在这10个数中出现最多。

则可以选出这2个组为:1. (1,3,5)和(3,8) 出现的为:1,3,5,8

2. (1,3,5)和(1,7) 出现的为:1,3,5,7

3. (1,3,5)和(9) 出现的为:1,3,5,9

4. (3,8)和(1,7) 出现的为:1,3,7,8

5. (1,7)和(5,3) 出现的为:1,3,5,7
...全文
541 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
欢乐的小猪 2017-06-14
  • 打赏
  • 举报
回复
引用 8 楼 leeky 的回复:
想了一下,似乎得到了解法: 问题的关键在于一个“筛” 这个题目的输入可以看成一个二维数组,或别的什么。 直观的,可以看成30000个桶, 第一步求出每个桶的元素个数; 选择一个元素最多的桶(选择可能很多),用此桶的元素去“筛”其余的桶(其它桶有相同元素则去掉,元素个数减1); 反复以上操作40次,得到一个解。
同意。 比方LZ的例子中。列向量 x1=(1,0,1,0,1,0,0,0,0,0) x2=(0,0,1,0,0,0,0,1,0,0) x3=(1,0,0,0,0,0,1,0,0,0) x4=(0,0,1,0,1,0,0,0,0,0) x5=(0,0,0,0,0,0,0,0,1,0) 第一步找到1的个数最多的向量,这里是x1。然后“筛”完之后,其他向量变为 x2=(0,0,0,0,0,0,0,1,0,0) x3=(0,0,0,0,0,0,1,0,0,0) x4=(0,0,0,0,0,0,0,0,0,0) x5=(0,0,0,0,0,0,0,0,1,0) 重复第一步找到1的个数最多的向量,这里是x2,x3,x5. 神似Dijkstra算法——求单点最短路径
leeky 2017-06-13
  • 打赏
  • 举报
回复
我上面的回复应当有漏洞,但可以参考这个思路。
leeky 2017-06-12
  • 打赏
  • 举报
回复
想了一下,似乎得到了解法: 问题的关键在于一个“筛” 这个题目的输入可以看成一个二维数组,或别的什么。 直观的,可以看成30000个桶, 第一步求出每个桶的元素个数; 选择一个元素最多的桶(选择可能很多),用此桶的元素去“筛”其余的桶(其它桶有相同元素则去掉,元素个数减1); 反复以上操作40次,得到一个解。
Turing_0 2017-02-10
  • 打赏
  • 举报
回复
最小覆盖集 加限制
dceacho 2017-01-19
  • 打赏
  • 举报
回复
感觉应该先按组里数据的多少进行排序 既然要找不重复的数最大,那当然单组的数要多
angel6709 2017-01-13
  • 打赏
  • 举报
回复
没有感受到该算法的意义。。
bingfenghzy 2017-01-03
  • 打赏
  • 举报
回复
no body???
bingfenghzy 2016-12-28
  • 打赏
  • 举报
回复
我自己来顶顶
bingfenghzy 2016-12-27
  • 打赏
  • 举报
回复
英文的。。 不好找啊
引用 1 楼 kernelkoder 的回复:
你可以看看这个算法网 www.geeksforgeeks.org 里面可能有类似的题目
kernelkoder 2016-12-27
  • 打赏
  • 举报
回复
你可以看看这个算法网 www.geeksforgeeks.org 里面可能有类似的题目
一大堆模版 自己可以下来参考 应该有200个以上吧 自己下来看看 其中一个目录 图论 路径问 0/1边权最短路径 BFS 非负边权最短路径(Dijkstra) 可以用Dijkstra解决问的特征 负边权最短路径 Bellman-Ford Bellman-Ford的Yen-氏优化 差分约束系统 Floyd 广义路径问 传递闭包 极小极大距离 / 极大极小距离 Euler Path / Tour 圈套圈算法 混合图的 Euler Path / Tour Hamilton Path / Tour 特殊图的Hamilton Path / Tour 构造 生成树问 最小生成树 第k小生成树 最优比率生成树 0/1分数规划 度限制生成树 连通性问 强大的DFS算法 无向图连通性 割点 割边 二连通分支 有向图连通性 强连通分支 2-SAT 最小点基 有向无环图 拓扑排序 有向无环图与动态规划的关系 二分图匹配问 一般图问与二分图问的转换思路 最大匹配(OK) 有向图的最小路径覆盖 0 / 1矩阵的最小覆盖 完备匹配(OK) 最优匹配(OK) 稳定婚姻 网络流问 网络流模型的简单特征和与线性规划的关系 最大流最小割定理 最大流问(OK) 有上下界的最大流问 循环流 最小费用最大流 / 最大费用最大流 弦图的性质和判定 组合数学 解决组合数学问时常用的思 逼近 递推 / 动态规划 概率问 Polya定理 计算几何 / 解析几何 计算几何的核心:叉积 / 面积 解析几何的主力:复数 基本形 点 直线,线段 多边形 凸多边形 / 凸包 凸包算法的引进,卷包裹法 Graham扫描法 水平序的引进,共线凸包的补丁 完美凸包算法 相关判定 两直线相交 两线段相交 点在任意多边形内的判定 点在凸多边形内的判定 经典问 最小外接圆 近似O(n)的最小外接圆算法 点集直径 旋转卡壳,对踵点 多边形的三角剖分 数学 / 数论 高精度计算 高数度加减法、乘除法 最大公约数 Euclid算法 扩展的Euclid算法 同余方程 / 二元一次不定方程 同余方程组 线性方程组 高斯消元法 解mod 2域上的线性方程组 整系数方程组的精确解法 矩阵 行列式的计算 利用矩阵乘法快速计算递推关系 分数 分数树 连分数逼近 数论计算 N的约数个数 phi(N) 约数和 快速数论变换 …… 素数问 概率判素算法 概率因子分解 数据结构 组织结构 二叉堆 左偏树 二项树 胜者树 跳跃表 样式图标 斜堆 reap 统计结构 树状数组 虚二叉树 线段树 矩形面积并 圆形面积并 关系结构 Hash表 并查集 路径压缩思的应用 STL中的数据结构 vector deque set / map 动态规划 / 记忆化搜索 动态规划和记忆化搜索在思考方式上的区别 最长子序列系列问 最长不下降子序列 最长公共子序列 一类NP问的动态规划解法 树型动态规划 背包问 动态规划的优化 四边形不等式 函数的凸凹性 状态设计 规划方向 线性规划 常用思 二分 最小表示法 串 KMP Trie结构 后缀树/后缀数组 LCA/RMQ 有限状态自动机理论 排序 选择/冒泡 快速排序 堆排序 归并排序(OK) 基数排序 拓扑排序 排序网络

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧