competitive_programming
1.0.0
这些是我对一些竞争性编程问题和各种练习的C ++解决方案。使用不同的算法和数据结构解决了类似的问题 - 有时使用标准库提供的问题,有时使用我自己的库。
由于EX-UVA在线法官限制,大多数解决方案都在C+11中。成功提交后的一些人被修改为使用C ++ 14/17功能。
问题来源
| ID | 标题 | 类别 |
|---|---|---|
| 001 08 | 最大总和 | 线性搜索,最大总和阵列,Kadane的算法 |
| 001 09 | 空粉克星 | 凸船体 |
| 001 12 | 树总和 | 二进制树 |
| 001 20 | 一堆flapjacks | 堆栈,煎饼分类 |
| 001 22 | 树上的树木 | 二进制树,水平订购遍历,广度优先搜索 |
| 001 40 | 带宽 | 排列,回溯 |
| 001 47 | 美元 | 动态编程,硬币更改 |
| 001 64 | 字符串计算机 | 动态编程,编辑距离 |
| 002 00 | 稀有订单 | 拓扑排序,深度优先搜索 |
| 002 16 | 排队 | 动态编程,汉密尔顿路径,位面具 |
| 002 18 | 消除飞蛾 | 凸船体 |
| 002 22 | 预算旅行 | |
| 002 40 | 可变radix huffman编码 | 霍夫曼树,深度优先搜索 |
| 002 59 | 软件分配 | |
| 002 64 | 指望康托尔 | |
| 002 70 | 排队 | |
| 002 94 | 除数 | |
| 003 34 | 确定并发事件 | |
| 003 48 | 最佳阵列多。顺序 | 动态编程,矩阵链乘法 |
| 003 50 | 伪随机数 | |
| 003 53 | 讨厌的回文 | 多项式滚动哈希,字符串处理 |
| 003 57 | 计算方式 | |
| 003 61 | 警察和强盗 | |
| 003 72 | whatfix符号 | 二进制树,前/in-/in-/tost-sord遍历转换 |
| 003 74 | 大国 | 二进制指数,模块化凸 |
| 004 29 | 单词转换 | |
| 004 37 | 巴比伦塔 | |
| 004 39 | 骑士移动 | 广度优先搜索 |
| 004 54 | Anagrams | |
| 004 55 | 周期性字符串 | 字符串,Knuth -Morris -Pratt算法 |
| 004 59 | 图形连接 | 分离/联合信息,图形连接的组件 |
| 004 69 | 佛罗里达的湿地 | |
| 004 81 | 发生了什么 | 最长增加的子序列,二进制搜索 |
| 004 82 | 排列数组 | |
| 005 01 | 黑匣子 | AVL树,二进制树迭代器 |
| 005 07 | 吉尔再次骑车 | 线性搜索,最大总和阵列,Kadane的算法 |
| 005 16 | 主要土地 | |
| 005 26 | 字符串距离 | 动态编程,编辑距离 |
| 005 36 | 树恢复 | 二进制树,前/in-/in-/tost-sord遍历转换 |
| 005 40 | 队列队 | |
| 005 43 | 戈德巴赫的猜想 | 素数 |
| 005 48 | 树 | |
| 005 51 | 嵌套支架 | |
| 005 58 | 虫洞 | |
| 005 62 | 分割硬币 | |
| 005 68 | 只是事实 | 阶乘,复发关系 |
| 005 74 | 总结一下 | |
| 005 82 | 随机有线神经网 | 深度优先的搜索,图形双连接组件 |
| 005 83 | 主要因素 | |
| 006 12 | DNA排序 | 合并排序,计数计数 |
| 006 23 | 500! | 阶乘,大整数 |
| 006 30 | Anagrams | |
| 006 39 | 不要训练 | |
| 006 74 | 硬币的变化 | |
| 006 79 | 掉球 | |
| 006 84 | 积分决定因素 | 高斯消除,欧几里得算法 |
| 006 86 | 戈德巴赫猜想II | 素数 |
| 007 01 | 考古学家的困境 | 对数 |
| 007 14 | 复制书 | 线性分区,隐性二进制搜索 |
| 007 19 | 玻璃珠 | 词汇最少的旋转,杜万的算法 |
| 007 27 | 方程 | 表达解析,分流院子算法 |
| 007 29 | 锤距离问题 | 回溯 |
| 007 50 | 八个皇后国际象棋问题 | 回溯 |
| 007 87 | 最大子序列产品 | 最大产品子阵列,大整数 |
| 007 93 | 网络连接 | |
| 007 96 | 关键链接 | 深度优先搜索,图形桥 |
| 008 20 | 互联网带宽 | |
| 008 33 | 水掉落 | |
| 008 68 | 数值迷宫 | 回溯 |
| 008 72 | 订购 | |
| 009 08 | 重新连接计算机站点 | |
| 009 29 | 数字迷宫 | |
| 009 42 | 循环数字 | 有理数,小数分数,哈希表 |
| 009 90 | 潜入黄金 | |
| 009 91 | 安全致敬 | 组合,复发关系,加泰罗尼亚 |
| 011 21 | 子序列 | 滑动窗口 |
| 011 75 | 女士的选择 | 稳定的匹配问题,大风射击算法 |
| 012 10 | 连续数字的总和 | 素数 |
| 012 52 | 二十个问题 | |
| 012 60 | 销售量 | |
| 012 93 | 符号推导 | 表达解析,分流码算法,符号评估。 |
| 013 72 | 日志跳跃 | |
| 016 50 | 数字字符串 | 组合学,复发关系 |
| 100 03 | 切棒 | |
| 100 04 | 双色 | |
| 100 18 | 反向并添加 | 整数,196-算法 |
| 100 61 | 多少个零和数字? | 阶乘数量,分解,对数 |
| 100 79 | 披萨切割 | 组合,中央多边形数字 |
| 101 07 | 中位数是什么 | 优先队列,在线算法 |
| 101 71 | 会议教授。米格尔 | |
| 101 93 | 你最需要的是爱 | 最伟大的常见除数 |
| 102 20 | 我喜欢大数字! | 阶乘,大整数 |
| 102 23 | 多少个节点 | 组合,复发关系,加泰罗尼亚 |
| 102 29 | 模块化斐波那契 | 斐波那契数,模块化指数 |
| 102 45 | 最接近的一对问题 | 2D最接近点 |
| 102 68 | 498-Bis | 霍纳的统治 |
| 102 82 | babelfish | 哈希表 |
| 102 98 | 动力弦 | |
| 103 05 | 订购任务 | |
| 103 11 | 戈德巴赫和欧拉 | 素数 |
| 103 19 | 曼哈顿 | |
| 103 27 | 翻转排序 | AVL树 |
| 103 41 | 解决它 | 数字,牛顿的方法 |
| 103 64 | 正方形 | 回溯,位面具 |
| 103 82 | 浇水 | 贪婪,间隔覆盖 |
| 104 28 | 根 | 根发现,二等法 |
| 104 54 | trexpression | 表达解析,分流院子算法,加泰罗尼亚 |
| 104 96 | 收集蜂鸣器 | |
| 105 33 | 数字素数 | |
| 105 67 | 帮助填补贝茨 | |
| 105 70 | 与外星人会面 | 置换,掉期计数,周期计数 |
| 105 76 | Y2K会计错误 | |
| 105 86 | 多项式残留 | |
| 106 00 | ACM比赛和停电 | |
| 106 04 | 化学反应 | |
| 106 51 | 卵石纸牌 | |
| 106 55 | 沉思!代数 | 复发关系,模块化指数 |
| 106 64 | 行李 | |
| 106 84 | 大奖 | |
| 106 99 | 计算因素 | 素数,素数分解 |
| 107 23 | 半机械人基因 | |
| 107 38 | Riemann vs Mertens | 素数,莫比乌斯功能,默滕斯功能 |
| 108 01 | 举起 | |
| 108 10 | Ultra QuickSort | 合并/插入排序,反转计数 |
| 108 55 | 旋转的正方形 | 基质旋转,基质换位 |
| 108 70 | 复发 | |
| 109 20 | 螺旋水龙头 | 分析表达 |
| 109 31 | 平价 | |
| 109 34 | 掉落水气球 | |
| 109 35 | 扔掉卡片 | 队列,单连锁列表 |
| 109 38 | 跳蚤马戏团 | |
| 109 54 | 添加全部 | 堆 |
| 109 57 | SU Doku检查器 | 回溯,位面具 |
| 109 94 | 简单的添加 | 分析表达 |
| 110 57 | 确切的总和 | |
| 110 60 | 饮料 | |
| 110 77 | 找到排列 | 组合,复发关系,斯特林数字 |
| 111 37 | 巧妙的食物 | |
| 111 51 | 最长的回文 | 动态编程,字符串处理 |
| 111 71 | 短信 | 动态编程,字符串处理,TRIE |
| 111 95 | 另一个N问题 | 回溯,位面具 |
| 112 27 | 银弹 | |
| 112 35 | 频繁的值 | |
| 112 36 | 杂货店 | |
| 112 57 | 新的营销计划 | 多边形,铭文圆半径,优先队列 |
| 112 58 | 字符串分区 | 动态编程 |
| 112 60 | 奇数总和 | 分析表达,含义。二进制搜索,模块化算术 |
| 112 71 | 电阻的晶格 | 复发关系,渐近扩张 |
| 112 83 | 玩笨拙 | 回溯 |
| 112 97 | 人口普查 | 2D SQRT分解 |
| 113 62 | 电话列表 | Trie,前缀匹配 |
| 114 13 | 填充容器 | |
| 114 20 | 抽屉箱 | 组合学,复发关系 |
| 114 56 | 训练 | |
| 114 61 | 平方数 | 隐式二进制搜索 |
| 114 62 | 年龄排序 | 计数排序 |
| 114 63 | 突击队 | |
| 114 75 | 延伸到回文 | |
| 115 17 | 确切的更改 | |
| 115 36 | 最小的子阵列 | 滑动窗口 |
| 115 72 | 独特的雪花 | 线性搜索,哈希表 |
| 115 84 | palindromes的划分 | |
| 116 21 | 小因素 | 对数 |
| 116 34 | 生成随机数 | |
| 116 36 | 你好世界! | 分析表达,对数 |
| 116 58 | 最佳联盟 | |
| 116 86 | 拿起棍子 | |
| 116 91 | 过敏测试 | |
| 117 03 | SQRT,日志,罪 | 复发关系 |
| 117 14 | 盲目分类 | 订单统计(最大第2) |
| 117 33 | 机场 | |
| 119 02 | 统治者 | |
| 119 91 | Rujia Liu的简单问题? | 排序,二进制搜索 |
| 119 97 | 最小的K | |
| 120 86 | 电位计 | 芬威克树 |
| 121 05 | 更大的更好(1) | |
| 121 05 | 更大的更好(2) | |
| 121 92 | 葡萄 | 二进制搜索 |
| 122 38 | 蚂蚁殖民地 | |
| 123 47 | 二进制搜索树 | 二进制搜索树,预/后遍历遍历 |
| 124 55 | 酒吧 | 完整的搜索,回溯 |
| 124 58 | 哦,我的树! | |
| 124 62 | 长方形 | 线性搜索,堆栈,位掩码 |
| 124 94 | 独特的子弦 | Lex。最小旋转,Duvan的算法,哈希表 |
| 125 04 | 更新词典 | 快速排序 |
| 126 40 | 最大的总和游戏 | 线性搜索,最大总和阵列,Kadane的算法 |
| 126 97 | 最小的亚阵列长度 | 线性搜索,最大总和阵列,Kadane的算法 |
| 127 02 | 扩张 | 二进制形态,二元图像扩张 |
| 129 11 | 子集总和 | 子集总和,完整搜索,中间会议 |
| 130 50 | 发现路径 | 组合学,复发关系 |
| 132 82 | Cakey McCakeface(1) | 排序,线性搜索 |
| 132 82 | Cakey McCakeface(2) | 位面具,铲斗 |
问题来源
| ID | 标题 | 类别 |
|---|---|---|
| C2 | 获取图像 | 分形,mandelbrot集,mpi, std::thread |
来自不同在线来源的其他问题。
| 标题 | 类别 |
|---|---|
| 阵列到二进制搜索树 | 二进制搜索树 |
| 带有单位调整的数组。差异搜索 | 线性搜索 |
| 二进制排序阵列过渡点 | 二进制搜索 |
| 二元树直径 | 二进制树,深度优先遍历 |
| 二进制树的顶视图 | 二进制树,广度优先的遍历 |
| Bitonic数组搜索 | 二进制搜索 |
| 三个阵列中的常见元素 | 线性搜索 |
| Y形链接列表中的连接点 | 单连锁列表 |
| 计数Anagram子字符串 | 哈希表,滑动窗口 |
| 计算右边较小的元素 | AVL树 |
| 计数邮政编码中的正方形 | 分析表达 |
| 计算三胞胎 | 线性搜索,配对总和搜索 |
| 在二进制流中的分裂性 | 模块化算术,可划分 |
| 平衡点 | 线性搜索 |
| 生成括号(1) | 组合,回溯 |
| 有一个总和 | 动态编程 |
| 是链接列表 | 单连锁列表 |
| 是子树(1) | 二进制树,深度优先遍历 |
| k-th eyter in Row-Column分类矩阵中的元素 | 堆 |
| k交换的最大数量 | 回溯 |
| 直方图中最大的矩形 | 线性搜索,堆栈 |
| 最大广场A布尔矩阵 | 动态编程,最大的方形符号 |
| 斐波那契的最后两个数字 | 斐波那契数,模块化算术,二进制启动 |
| 列表合并 | 单连锁列表 |
| 列表合并排序 | 单连锁列表,合并排序 |
| 最长的不同字符底带 | 线性搜索 |
| 最长的回文sum substring | 线性搜索 |
| 多数元素 | Boyer - Moore多数投票算法 |
| 严格增加数组 | 最长增加的子序列,二进制搜索 |
| 矩阵旋转 | 基质旋转,基质换位 |
| 排序元素之间的最大距离 | 线性搜索 |
| 字符串中的最大值 | 线性搜索,词典比较 |
| 每个子阵列的最大(1) | 滑动窗口,平衡的二进制树 |
| 每个子阵列的最大(1) | 滑动窗,Deque |
| 3个要素的最大产品 | 线性搜索 |
| Min-stack | 堆 |
| 排序旋转阵列中的最小元素 | 二进制搜索 |
| 最小跳跃数(1) | 动态编程 |
| 最小跳跃数(2) | 线性搜索 |
| 几乎分类 | 堆排序,插入排序 |
| 下一个更大的元素 | 线性搜索,堆栈 |
| 二进制距离k的节点 | 二进制树,深度优先遍历 |
| 网格中的路径数 | 组合学 |
| 分区均匀和奇数节点 | 单连锁列表 |
| 队列作为两个堆栈 | 队列,堆栈 |
| 删除重复节点 | 单连锁列表 |
| 删除中间节点 | 单连锁列表 |
| 从字典恢复字母 | 拓扑排序,卡恩的算法 |
| 扭转单连锁列表 | 单连锁列表 |
| 字符串中的单词 | 线性搜索 |
| 旋转单连接的列表 | 单连锁列表 |
| 旋转的阵列搜索 | 二进制搜索,线性搜索 |
| 第二大 | 订单统计,第二大元素,二进制计数器 |
| 设置行和列如果 | 线性搜索 |
| 排列中的最小数字 | 线性搜索 |
| 大小3的分类子序列 | 线性搜索 |
| 大小4的分类子序列 | 线性搜索 |
| 平方根 | 隐式二进制搜索 |
| 带有总和的子阵列 | 线性搜索 |
| 三路分区 | 阵列分区 |
| 给定总和的两个元素 | 线性搜索,哈希表 |
| 无序等级的数组 | 序列,哈希表 |
| XOR链接列表 | 双关联列表 |
| 零和子阵列 | 线性搜索,哈希表 |