SNG Summer Camp 1 题解 (Past)

cww970329 edited 6 年,5 月前

This is a past version of blog SNG Summer Camp 1 题解

A

循环遍历找到@切分成用户名和域名,构建结构体或者pair,按题意编写算子后排序输出

B

基础的区间dp,使用记忆化搜索会比较好写一些,dp[l][r]是s[l..r]的最长回文子序列,边界条件是当dp[l][r]=0(l=r+1)以及dp[l][r]=1(l=r),如果s[l]==s[r]则dp[l][r]=dfs(l+1,r-1)+2,否则为max(dfs(l, r-1), dfs(l+1, r))

C

意思就是异或,中小数据直接循环求出答案,大数据使用Trie树按二进制高位到低位存储数字,每个数字贪心在Trie中寻找能尽量令高位为1的数,然后将数字加入,不断重复

D

将第i个串相邻字符合并并计数,一共n[i]组,第j组相邻相同字符为s[i][j]个数为c[i][j]。要求必须每个n[i]均相同,并且所有s[*][j]相同,才能变成相同的。若能变为相同,对每组c[*][j]求中位数作为最终目标,即可获得最终结果。使用vector会比较好写