ARC071B题解
2022/4/1 23:24:11
本文主要是介绍ARC071B题解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
题面
题意:
有 \(n\) 条横线段分别为 \(x=x_i\) , \(m\) 条纵线段分别为 \(y=y_i\) ,求他们围成的所有矩形的面积和。
首先,我们定义 \(dx_{i,j}\) 为第 \(i\) 条横线段与第 \(j\) 条横线段之间的距离,\(dy_{i,j}\) 为第 \(i\) 条纵线段与第 \(j\) 条纵线段之间的距离。
则答案为 \(\sum_{1\leq i<j\leq n} \sum_{1\leq k<l\leq m} dx_{i,j}\times dy_{k,l}\) 。
那么通过一些因式分解我们可以把答案变为 \(\sum_{1\leq i<j\leq n}dx_{i,j} \times \sum_{1\leq k<l\leq m} dy_{k,l}\) 。
然后去考虑每一条 \(x_i\to x_{i+1}\) 的边的贡献。通过小学知识可知他对答案的贡献是 \(i\times(n-i)\) 。
这样就可以算出来 \(\sum_{1\leq i<j\leq n}dx_{i,j}=\sum_{1\leq i< n}dx_{i,i+1}\times i\times(n-i)\) 。
所以答案就是 \((\sum_{1\leq i< n}dx_{i,i+1}\times i\times(n-i))\times(\sum_{1\leq i< m}dy_{i,i+1}\times i\times(m-i))\) 。左右两边分别 \(O(n)\) 计算即可。
代码
这篇关于ARC071B题解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享