IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 7.12 子集和问题和后期预告 -> 正文阅读

[数据结构与算法]7.12 子集和问题和后期预告

【问题描述】给定一个整数的集合 S 和一个整数 X,问是否存在 S 的一个子集满足其中所有元素的和为 X。
【分析】
子集和问题是一个 NPC 问题,与 0/1 背包问题并不相同。
这个问题有一个时间复杂度为 O(2^N/2)的较高效的搜索算法,其中 N 是集合 S 的大小。
第一步思想是二分。将集合 S 划分成两个子集 S1和 S2,它们的大小都是 N/2。对于 S1和 S2,分别枚举出它们所有的 2N/2 个子集和,保存到某种支持查找的数据结构中(如散列表)。然后就要将两部分结果合并,寻找是否有和为 X 的 S 的子集。事实上,对于 S1的某个和为 X1 的子集,只需寻找 S2 是否有和为 X-X1 的子集。假设采用的散列表是理想的,每次查找和插入都仅花费 O(1)的时间。两步的时间复杂度显然都是 O(2^N/2)。
实践中,往往可以先将第一步得到的两组子集和分别排序,然后再用两个指针扫描的方法查找是否有满足要求的子集和。这样的实现,在可接受的时间内可以解决的最大规模约为 N=42。

预告?

第八单元 排序算法................ 85
8.1 常用排序算法 ................. 85
8.2 简单排序算法 ................. 87
8.3 线性时间排序 ................. 88
8.4 使用二叉树的排序算法*.......... 89
8.5 小结 ........................ 90
第九单元 基本数据结构 ............ 91

9.1 线性表(顺序结构) .............91
9.2 线性表(链式结构) .............91
9.3 栈 ..........................93
9.4 队列.........................94
9.5 二叉树 .......................95
9.6 并查集! ......................99
9.7 小结........................102
第十单元 查找与检索 ............. 104
10.1 顺序查找 ...................104
10.2 二分查找! ..................104
10.3 查找第 k 小元素! .............105
10.4 二叉排序树..................106
10.5 堆和优先队列* ...............108
10.6 哈夫曼(Huffman)树 .........110
10.7 哈希(Hash)表..............111
第十一单元 数学基础 ............. 116
11.1 组合数学 ...................116
11.2 组合数的计算! ...............117
11.3 排列和组合的产生(无重集元素)! 117
11.4 排列和组合的产生(有重集元素) .120
11.5 秦九韶算法..................122
11.6 进制转换(正整数) ...........123
11.7 高精度算法(压位存储)!.......123
11.8 快速幂! ....................128
11.9 表达式求值..................129
11.10 解线性方程组* ..............133
第十二单元 数论算法 ............. 135
12.1 同余的性质!.................135
12.2 最大公约数、最小公倍数!.......135
12.3 解不定方程 ax+by=c!* .......135
12.4 同余问题* ..................136
12.5 素数和素数表 ................136
12.6 分解质因数..................137
第十三单元 图与图论算法.......... 139
13.1 图的实现 ...................139
13.2 图的遍历 ...................141
13.3 连通性问题..................142
13.4 欧拉回路 [邻接矩阵] .........146
13.5 最小生成树(MST) ...........147
13.6 单源最短路问题(SSSP 问题) ...148
13.7 每两点间最短路问题(APSP 问题)!152
13.8 拓扑排序 ...................152
13.9 关键路径 ...................155
13.10 二分图初步.................157
13.11 小结......................160
第十四单元 STL 简介 ............. 164
14.1 STL 概述 ...................164
14.2 常用容器 ...................164
14.3 容器适配器..................170
14.4 常用算法 ...................171
14.5 迭代器 .....................175
14.6 示例:合并果子.............. 175
附录 A 思想和技巧 ............... 177
A.1 时间/空间权衡 ............... 177
A.2 试验、猜想及归纳 ............. 177
A.3 模型化 ..................... 177
A.4 随机化* .................... 178
A.5 动态化静态 .................. 178
A.6 前序和! .................... 179
A.7 状态压缩*................... 180
A.8 抽样测试法* ................. 182
A.9 离散化* .................... 183
A.10 Flood Fill* .............. 184
附录 B 调试 .................... 185
B.1 常见错误类型 ................ 185
B.2 调试过程.................... 185
B.3 调试功能.................... 185
B.4 符号 DEBUG 的应用 ............ 186
B.5 代码审查表 .................. 186
B.6 故障检查表 .................. 187
B.7 命令行和批处理*.............. 188
附录 C 竞赛经验和教训............ 192
C.1 赛前两星期 .................. 192
C.2 赛前 30 分钟................. 192
C.3 解题表 ..................... 193
C.4 测试数据.................... 195
C.5 交卷前 5 分钟 ................ 196
C.6 避免偶然错误 ................ 196
C.7 骗分 ....................... 197
附录 D 学习建议................. 198
D.1 学习方法.................... 198
D.2 学习能力.................... 198
D.3 关于清北学堂 ................ 198
附录 E 竞赛简介................. 199
E.1 从 NOIP 到 IOI............... 199
E.2 NOIP 简介 .................. 199
E.3 常用语 ..................... 201
E.4 第一次参加复赛…… ........... 202
附录 F NOIP 复赛知识点分布 ....... 204
附录 G 资料推荐................. 205
G.1 书籍 ....................... 205
G.2 网站 ....................... 205
参考文献 ....................... 206
计算机专业是朝阳还是夕阳? ........ 207
杜子德在 CCF NOI2012 开幕式上的讲话 209
多数奥赛金牌得主为何难成大器 ...... 210

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-07-03 11:03:35  更:2022-07-03 11:04:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 18:51:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码