GMCPC 2020 网络预选赛
L捕鱼达人
题意:
鱼有颜值和价值两个属性,现在给一群鱼,鱼群顺序是从左到右排列的,鱼群的顺序是不可变的,可以从鱼群头或者鱼群尾开始捕鱼,但是顺序必须是从左到右或者从右到左,且当前捕获的鱼颜值必须大于等于前一条鱼颜值。求捕获到的鱼的价值最多。
有点像LIS,但是顺序不能改变。
解法:从1到n,然后区间查询1到i减一的f数组的最大值,f(i)等于最大值加自身价值。然后将f(i)插入到i对应的实际颜值的位置
所以只需用线段树找区间最大值即可
不必离散化,也就[0,9999],为什么没有负数呢?因为负数情况下,你捕这条鱼只会使得价值变小,所以负数价值肯定要舍去。
R孤独的字符串
题意:
定义一类串为孤独的串,这类串的特点是串中存在某个字符“a”,它只与“b”相邻或者无相邻字符(比如长度为1的字符串“a”)。 如“babaa”是孤独的串,因为第一个“a”左右两边都是“b”。“aaba”也是,因为最后一个“a”的存在使该串符合条件。 特殊的,一个只含有字符“b“的串不是孤独的串。现在,给一个正整数n,Luhhy想知道长度为n的孤独的串的数量有多少个。
找规律题目
暴力打出前几个数据的情况,找得规律
1:1
2:2
3:4
4:9 == 4×2+1
5:20 == 9×2+2
6:43 == 20×2+3
7:91 == 43×2+5
8:191 == 91×2+9
9:398 == 191×2+16
10:……
得到黑色加粗数字的规律:a[n]=2*a[n-1]-a[n-2]+a[n-3]
S鲍勃的输入法
字典树+dfs,因为字典树本身就自带有字典序的顺序,所以每层从a到z进行遍历即可。