HDU 2079 选课时间:多重背包组合计数
题目大意 有 k 类课程,第 i 类学分为 a[i],有 b[i] 门可选。求选总学分恰为 n 的组合数(同学分课程视为无差别)。约束:n≤40, k≤8, a
HDU 5014 贪心位运算:异或最大化配对
题目大意 给定数组 a[0..n],需构造排列 b 使 sum = Σ (a[i] XOR b[i]) 最大化。输出最大和及任意最优排列。 核心观察 对每个
HDU 1695 GCD:欧拉函数筛法 + 容斥原理计数互质对
题目大意 给定 a,b,c,d,k,求满足 gcd(x,y)=k 的有序对 数,其中 x∈[1,c], y∈[1,d],视 与 为同一对。约束:c,d ≤
LeetCode 链表插入排序:哨兵节点 + 就地重排
题目要求 对单链表进行插入排序,返回排序后头节点。插入排序:每步取一个待排节点,插入已排序部分的合适位置。 算法思路 创建哨兵节点 helper 作为已排序
POJ 3169 布局:差分约束 + Bellman-Ford 求最长路
题目大意 N 头牛(N ≤ 1000)按编号排成一排,位置可重合。ML 对好牛:距离 ≤ D;MD 对坏牛:距离 ≥ D。求牛 1 到牛 N 的最大可能距离。无
Effective C++ 条款 24-29 深度解析:设计声明与实现篇
条款 24:若所有参数皆需类型转换,请采用 non-member 函数 问题场景 有理数类 Rational,重载 operator*。成员函数版本: clas
LeetCode 平衡二叉树判定:后序遍历 + 剪枝优化
题目定义 给定二叉树,判断是否高度平衡:任意节点的左右子树高度差不超过 1。 算法思路:自底向上后序遍历 递归函数返回子树高度,若发现不平衡立即标记并上传,避
LeetCode 买卖股票的最佳时机 I:差分数组 + 最大子段和
题目大意 给定数组 prices,prices[i] 表示第 i 天股价。只能完成至多一笔交易(买入后卖出),求最大利润。若无利润返回 0。 核心洞察:差分转
Codeforces 171F 解密题:反素数查找与打表技巧
题目背景:一道「加密」的神题 Codeforces 171F 的题面乍看全是乱码: qd ucyhf yi q fhycu dkcruh mxeiu huluh
C++ 跨平台进程管理类:基于 POSIX spawn 实现
简介 在 C++ 开发中,进程创建与管理是系统编程的核心需求。标准库未提供统一的跨平台进程接口,开发者常需直接调用平台 API。本文介绍一个轻量级的 C++ 封
UVA 1331 Minimax Triangulation:區間 DP 多邊形三角剖分
UVA 1331 Minimax Triangulation 詳解 題目:給定凸多邊形 m 個頂點(2 < m < 50),按順序(順/逆時針)給出座標。將其三
HDU 1253 勝利大逃亡:三維 BFS 迷宮最短路徑
HDU 1253 勝利大逃亡 詳解 題目:Ignatius 被關在 A×B×C 的立方體城堡中,起點 (0,0,0),終點 (A-1,B-1,C-1)。每分鐘可
LeetCode 162. Find Peak Element:對數級二分查找峰值
LeetCode 162. Find Peak Element 詳解 題目:峰值元素定義為嚴格大於左右鄰居的元素。給定數組 nums,相鄰元素不相等 (nums
LeetCode 58. Length of Last Word:字符串尾部單詞長度計算
LeetCode 58. Length of Last Word 詳解 題目:給定字符串 s,僅包含大小寫字母與空格。返回最後一個單詞的長度(單詞定義為連續非空
LeetCode 38. Count and Say:外觀數列的遞歸生成規律
LeetCode 38. Count and Say 詳解 題目:外觀數列從 1 開始,每一項描述前一項的連續數字個數與值。前幾項: 1. 1 2.
LeetCode 27. Remove Element:原地移除元素的雙指針技巧
LeetCode 27. Remove Element 詳解 題目:給定陣列 nums 與值 val,原地移除所有等於 val 的元素,返回移除後的新長度。元素
LeetCode 1. Two Sum:雙指針與哈希表兩大經典解法
LeetCode 1. Two Sum 詳解 題目:給定整數陣列 nums 與目標值 target,找出兩個數使其和等於 target,返回其下標(1-base