https://codeforces.com/contest/1822(div3题解)

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求出获得的最大权值,输出即可

Problem - G1 - Codeforces

桶排+暴力

最多需要暴力1e3,对于每个数桶排,然后排列组合计算匹配数量即可

Problem - G2 - Codeforces 

 奋斗中......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值