摘要:
HDU1069 Monkey and Banana 题目大意 给定 n 种盒子, 每种盒子无限多个, 需要叠起来, 在上面的盒子的长和宽必须严格小于下面盒子的长和宽, 求最高的高度. 思路 对于每个方块, x, y, z 的全排列共有 6 种可能性, 每种可能性只需要一个方块, 因为方块必须严格小于 阅读全文
摘要:
PAT1089. Insert or Merge 题目大意 给定一个初始序列src, 一个排序当中的序列tar, 问排序方式是 Insert Sort , 或者 Merge Sort . 并输出下一次迭代排序的序列, 保证答案唯一. 思路 由于保证了答案的唯一性, 所以先检测是否是 Insert S 阅读全文
摘要:
PAT1087. All Roads Lead to Rome 题目大意 给定一个图的边权和点权, 求 边权最小 的路径; 若边权相同, 求 点权最大 ; 若点权相同, 则求 平均点权最大 . 思路 先通过 Dijkstra 求得最短路径, 需要注意的是: 要保证每次松弛时 u 和 v 不相同, 否 阅读全文
摘要:
HDU1269 迷宫城堡 题目大意 给定 有向图 中的 n 个点, m 条边, 求图的 强连同分量 是否为 1. 题目思路 一道裸的 tarjan 题, 需要注意的是边的存储, LOW的含义. 代码 C++ include include include include define MAXN 10 阅读全文
摘要:
HDU1285_确定比赛名次 题目大意 有 n 个队伍, 只知道 m 条关于两支队伍之间胜负的关系. 求 排名. 排名不唯一, 此时输出编号较小的队伍的排名. 输入数据保证有一个符合要求的排名. 思路1 最开始想到的是 使用队列进行排序 , 但是 传统地 使用队列, 并不能解决这道问题. 所以需要 阅读全文
摘要:
PAT1067. Sort with Swap(0, \ ) (25) 并查集 题目大意 给定一个序列, 只能进行一种操作: 任一元素与 0 交换位置, 问最少需要多少次交换. 思路 最优解就是每次 0 都和所在位置本应在的元素交换位置, 共 n 1 次, 但是在交换中 0 可能会被交换到 0 号位 阅读全文
摘要:
PAT1065. A+B and C (64bit) 题目大意 给定三个 64 位整数 a, b, c. 问 a + b c 是否成立 思路 一道考察字符串处理的题, 可以用Java大整数类水过, 但是需要 加速挂 , 否则会超时. 代码 阅读全文
摘要:
1064. Complete Binary Search Tree 题目大意 给定一个序列, 求其 生成Complete BST 的层序遍历. 思路 最开始把这个题想复杂了, 还想着建立结构体, 其实用 数组 最为方便简单 1. 中序遍历这棵 Complete BST, 依次填入一个排好序的序列. 阅读全文
摘要:
1063. Set Similarity 题目大意 给定 n 个集合, k 个询问, 求任意两个集合的并集和合集. 思路 一道裸的考察 STL 中 set 的题, 我居然还用 hash 错过一遍, 用 vector勉强过了, 最后才发现原来如此简单. 代码 阅读全文
摘要:
Balanced Substring 题目大意 给定一个字符串, 字符串中只含有 0 和 1, 求一个区间 [l, r] 内, 0 和 1 数量相等的最大子串. 思路 这道题的字符串最大长度为 100000, 若使用 O(n) 的算法肯定会超时, 所以需要使用 前缀和 进行求值. 对于prefixS 阅读全文