Buy Low, Buy Lower (buylow)
动态规划,b[i]=max{b[j]}+1 (1<=j<i且a[j]>a[i])
然后根据加法原则,统计i之前的长度为b[i]-1的个数相加之和就是b[i]的个数。为了避免重复的情况要增加一个数组记录比i大的等于a[i]的数,如果没有就标记为0.这样,我们在处理相加时,对于每一个j,只需保证next[j]==0 || next[j]>i就可以,意思就是在当前j ~ i-1的区间中没有价格等于j的元素了,这样,总是处理区间中重复元素的最后一个。
The Primes (prime3)
打表很重要,打出各种各样的表来,先晒出符合条件的素数,然后做出规定特定位的表来,比如指定第1位和第3位的素数表。枚举的顺序很重要,先枚举对角线,然后枚举最上面一行,然后中间两竖行,然后最左边一竖行,然后中间竖行。剩下的可以根据和相等计算出来再判定是否符合素数条件,要注意第一行和第一列不能存在0,最后一列和最后一行必须是0,1,3,9其中一个。最后排序。
Street Race (race3)
首先枚举除0和n以外的各个点,去掉离开这个点的边,从起点bfs搜索,如果到达不了终点,则此点是“不可避免路口”。由于是“不可避免路口”,则去掉离开这点的边后不能从刚刚bfs已路过的点达到刚才bfs过程中未达到的点,所以如果从该点开始搜索,如果搜索不到之前bfs已达到的点,就说明此点为“中间路口”。
Letter Game (lgame)
枚举。之前先排除一部分单词以加快速度。