题目 | 类型 | 难度 |
---|---|---|
Alice and Bob | 数学 | ★ |
Completed String | 统计,执行 | ★ |
Duplicate Elements | 查找,执行 | ★ |
Fish | 贪心,优先队列 | ★★ |
Rectangle Union | 几何,容斥 | ★★ |
Unique Characters String | 动态规划 | ★★★★ |
Alice and Bob
题意
求n位数中能整除m的数有多少个?
思路
$g(n,m)$为题目所求,其中$f(x,m) = \lfloor x/m \rfloor + 1$。
标程
1 |
|
Completed String
题意
判断字符串是否含所有英文字母(不区分大小写)
思路
直接统计即可,数组或者位运算都可以。
标程
1 |
|
Duplicate Elements
题意
给一个数字序列,求去重之后的序列(要保持原序列的相对顺序)
思路
每得到一个数,查之前是否出现过,出现过就丢弃,没出现过就按顺序存下来。查找可以用set,hash,二分等。
标程
1 |
|
Fish
题意
题目来源于 POJ 1042 Go Fish, 简化了题目,只是要求贪心的部分。
在$n$个池塘钓鱼,每个池塘单位时间能钓$a_i$条鱼,池塘每钓1次,下次钓鱼的数目会减少$b_i$,最多可以钓多少条鱼?
思路
贪心是很明显的,每次都取鱼数最多的池塘钓就可以了。
因为池塘鱼数是动态的,所以利用优先队列维护一下即可。
另外,如果发现队头元素$a_i = 0$或者$b_i = 0$都可以立刻得到最后结果。
标程
1 |
|
Rectangle Union
题意
求两个平行于坐标轴的矩形面面积并。
思路
由于矩形是平行于坐标轴的,所以矩形的交可以分别投影到$X$和$Y$轴,两个坐标轴上投影区间交的乘积即为矩形面积交。
标程
1 |
|
Unique Characters String
题意
求一个字符串中不重复字符最长的子串。
思路
$dp[i]$ 表示以字符i为后缀的不重复字符子串的最大长度。
所以记录下每个字符最后出现的位置,然后动态规划,$max\{dp[i] \mid i = 1,2,\ldots,n\}$即为不重复字符子串的最大长度。
然后再扫描$dp[i]$,求得所有的不重复字符最长的子串。
标程
1 |
|