https://codeforces.com/contest/1822/problem/E
暴力+贪心
首先如果是奇数的话肯定是不行的,因为正中间有一个字符导致无论如何都是不成立的
如果有一个字符的数量超过n/2那么无论怎么分配也是不行的,然后我们分别统计s[i]==s[n-1-i]对应字符的数量,这里的解法就有点像以前写过的一个砍竹子的题目,题目大意:给定n根柱子,第i个竹子的高度是a[i], 你可以进行无数次操作,对于每一次操作,你需要选择两根竹子i,j,你可以将它砍断[1,min(a[i],a[j])]的长度,请问你能不能将所有的竹子砍断,这里对应的就是每个字符的数量,然后求最大的匹配数量,如果最大的字符数量是cnt_mx,总的统计数量是cnt,最终的答案就是max(cnt_mx,cnt)
https://codeforces.com/contest/1822/problem/F
树上dp+求节点最长链路
算法类似于求树的直径,但是是求每个节点的最长链路,
然后bfs求出获得的最大权值,输出即可
桶排+暴力
最多需要暴力1e3,对于每个数桶排,然后排列组合计算匹配数量即可
奋斗中......