题目一: Buy low, buy lower
** Description: 最长下降子序列中不同的序列有多少个?
** Algorithm: DP + BIGN
** Analysis: BASIC b[i] = b[j]+1 | a[j] > a[i] and b[j]+1 > b[i], 1 <= j < i
如果计算重复,则
cnt[i] += cnt[j] | a[j] > a[i] and b[j]+1 = b[i]. 1 <= j < i;
cnt[i] = MAX(1);
** Special Test:9 7 5 8 5 1 Dp 1 2 3 2 3 4 Num 1 1 1 1 2 2
对于第一个出现的5和第二个5,他们的dp一样,但是num却不一样。
这里我们可以取最后一个5,原因如下:对于非最后一个5的序列,最后一个5,一定可以取得。
例如对于第二个5,第一个5的9 7 5序列,第二个5同样可以取得。而且后面的5可能会有更多的取法,
例如上例中的第二个5,还可以获得9 8 5这个序列。所以我们这里,最后1对应的num应该是2
题目二:The Primes
很麻烦的一道题目,花了好久才不TLE,不想再写第二遍了!
题目三:Street Race
** Description: 第一问为求有向图的割,第二问为求无向图的割
** Algorithm: DFS
** Analysis: 完全图的3个性质:
1.任意一个点从起点可达;
2.任意一个点可到达终点;
3.终点出度为0;
第一问的答案保证了没有从分割1到分割2的边;
第二问的答案同时要保证没有分割2到分割1的边;
故第二问可以在第一问的基础上展开。同时也可以保证分割的两部分都是完全图!
但是貌似数据里面没有判断第二问的分割点没有自环边。
交上去发现有这种数据,但是按照可以的来算的
题目四: Letter Game
** Description: 这道题目关键是理解题意:
** 正确的理解应是 在给定的DICT中找出一个或两个单词的组合,
满足各字母出现的次数不多于给定的输入的字符串中各字母的个数
** Analysis: 一开始可能会害怕枚举,应为感觉数据范围好大的,但是可以经过初步删选,得到的只是很小的一部分
两个的情况只要枚举一下就可以了
** NOTE: 由于要按照字典序,可以把最后一个设为空串