我是靠谱客的博主 稳重钢笔,最近开发中收集的这篇文章主要介绍AtCoder Beginner Contest 058(ABCD),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

AtCoder Beginner Contest 058(ABCD)

A - ι⊥l

思路:特判

B - ∵∴∵

思路:模拟

C - Dubious Document

思路:暴力统计下每个字母出现的最小次数,然后排序。

D -

求和优化。

我的公式:考虑包含某个 y i y_i yi 出现的所有对的贡献分类求和。

s y = ∑ i = 2 m − ( m − i + 1 ) × y i − 1 s_y=sum_{i=2}^m-(m-i+1)times y_{i-1} sy=i=2m(mi+1)×yi1

s x s_x sx同理。

最后答案即: s x × s y s_xtimes s_y sx×sy

更优的方法:考虑成对出现的次数。

x 1 , x n x_1,x_n x1,xn都出现 n − 1 n-1 n1次,所以 ( x n − x 1 ) (x_n-x_1) (xnx1)贡献是: ( n − 1 ) × ( x n − x 1 ) (n-1)times(x_n-x_1) (n1)×(xnx1)

x 2 , x n − 1 x_2,x_{n-1} x2,xn1都出现 n − 2 n-2 n2次,所以 ( x n − 1 − x 2 ) (x_{n-1}-x_2) (xn1x2)贡献是: ( n − 2 ) × ( x n − 1 − x 2 ) (n-2)times(x_{n-1}-x_2) (n2)×(xn1x2)

依次类推求和即可。

最后

以上就是稳重钢笔为你收集整理的AtCoder Beginner Contest 058(ABCD)的全部内容,希望文章能够帮你解决AtCoder Beginner Contest 058(ABCD)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部