# [Educational Codeforces Round 171](https://codeforces.com/contest/2026)

news/2024/10/30 17:11:23/文章来源:https://www.cnblogs.com/xdeyt/p/18516173

Educational Codeforces Round 171

D. Sums of Segments

定义四个前缀和:

\(s_i=a_1+a_2+\dots+a_i\)

\(u_i=s_1+s_2+\dots+s_i\)

\(t_i=s(i,i)+s(i,i+1)+\dots+s(i,n)\)

\(ts_i=t_1+t_2+\dots+t_i\)

\(s_i\)\(a_i\)的前缀和,\(u_i\)\(s_i\)的前缀和,\(t_i\)为分块之后第\(i\)块的和,\(ts_i\)\(t_i\)的前缀和,也是分块之后的前缀和

\(b\)数组中第\(k\)块的个数是\(n-k+1\),前\(k\)块的总数为\(nk-\frac{k(k-1)}{2}\)

由前\(k\)块的总数可以二分,定位到\(l,r\)的块数,假定分别\(x,y\)

此时和\(sum=ts_{y}-ts_{x-1}\),还需要减去在\(x,y\)块中多加的

此时需要求位置\(l,r\)在块中的第几个

设第\(l,r\)个元素是\(s(x,z),s(y,w)\),由于位置\(xn-\frac{x(x-1)}{2}\)上的元素是\(s(x,n)\),则有

\(n-z=xn-\frac{x(x-1)}{2}-l\),可得:\(z=n-xn-\frac{x(x-1)}{2}+l\)

同理:\(w=n-yn-\frac{y(y-1)}{2}+r\)

然后删去多出来的部分

对于第\(x\)块,位置\(l\)\(s(x,z)\),所以要去掉\(s(x,1)+s(x,2)+\dots+s(x,z-1)\),即下图中红色部分,就可以用我们前面的前缀和求取,

蓝色梯形部分为:\(u_{z-1}-u_x\)

橙色矩形部分为:\((x-z)s_{x-1}\)

所以减去的红色部分为:\(u_{z-1}-u_x-(x-z)s_{x-1}\)

同理可得对于第\(y\)块,需要减去的部分为:\(u_n-u_{w-1}-(n-w)s_{y-1}\)

代码如下:

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define inf 0x3f3f3f3f
const int mod = 1e9 + 7;
const int N = 3e5 + 10;
const double eps = 1e-6;
int n;
int s[N],u[N],t[N],ts[N],a[N];
int x, y, q, l, r ,z ,w;
void solve()
{cin >> n;for(int i = 1 ; i <= n ; i ++){cin >> a[i];s[i] = s[i-1] + a[i];u[i] = u[i-1] + s[i]; }for(int i = n ; i >= 1 ; i --)t[i] = t[i+1] + (n-i+1)*a[i];for(int i = 1 ; i <= n ; i ++)ts[i] = ts[i-1] + t[i];cin >> q;while(q--){cin >> l >> r;int sum = 0;int L = 1, R = n;while(L != R){int mid = (L + R) / 2;if(n*mid-mid*(mid-1)/2 < l) L = mid + 1;else R = mid;}x = L;L = 1 , R = n;while(L != R){int mid = (L + R) / 2;if(n*mid-mid*(mid-1)/2 < r) L = mid + 1;else R = mid;}y = L;// cout << x << " " << y << " ";sum = ts[y] - ts[x-1];z = n - (x*n -x*(x-1)/2 - l);w = n - (y*n -y*(y-1)/2 - r);sum -= u[z-1] - u[x-1] - (z-x)*s[x-1];sum -= u[n]-u[w] -s[y-1]*(n-w);cout << sum << endl;}
}
signed main()
{ios::sync_with_stdio(0);cin.tie(0), cout.tie(0);int _ = 1;// cin >> _ ;while (_--)solve();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/824216.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ansible 的主机清单和配置文件

一.简介 在使用Ansible来批量管理主机的时候通常我们需要先定义要管理哪些主机或者主机组,而这个用于管理主机与主机组的文件就叫做 Inventory ,也叫主机清单。 该文 件 默 认 位 于/etc/ansible/hosts。当然我们也可以通过修改ansible配置文件的Inventory配置项来修改默认in…

2024年项目经理必看!项目管理平台如何助力项目成功交付?

一、项目管理平台的重要性 在 2024 年,项目管理平台对于项目成功交付起着至关重要的作用。 首先,项目管理平台能够极大地提高协作效率。例如,像 禅道 这样的优秀平台,为团队提供了统一的协作空间,成员可以在平台上共享文档、讨论问题、分配任务等。通过这种方式,信息传递…

嗅探与欺诈实验

作业题目 包嗅探和欺骗是网络安全中的两个重要概念;它们是网络通信中的两大威胁。能够理解这两种威胁对于理解网络中的安全措施至关重要。有许多包嗅探和欺骗工具,如Wireshark、Tcpdump、Netwox等。其中一些工具被安全专家以及攻击者广泛使用。能够使用这些工具对学生来说很重…

强势建议收藏!2024年工程项目管理平台上的10个高效工具

一、多功能的禅道 禅道作为工程项目管理平台,拥有众多强大功能。 在项目管理和协作方面,禅道集成了产品管理、项目管理、质量管理、文档管理、组织管理和事务管理等多方面功能,完整覆盖了工程项目管理的核心流程。通过禅道,团队成员可以清晰地了解项目的各个环节,从需求收…

TCP攻击实验

作业题目 本实验的学习目标是让学生获得有关漏洞以及针对这些漏洞的攻击的第一手经验。聪明人从错误中学习。在安全教育中,我们研究导致软件漏洞的错误。研究过去的错误不仅有助于学生理解为什么系统容易受到攻击,为什么“看似良性”的错误会变成灾难,以及为什么需要许多安全…

环境变量与set-uid实验

作业题目 本实验室的学习目标是让学生了解环境变量如何影响程序以及系统行为。环境变量是一组动态命名值,可以影响正在运行的进程将在计算机上运行。大多数操作系统都使用它们,因为它们是1979年引入Unix。尽管环境变量会影响程序行为,但它们是如何实现的这一点很多程序员都不…

XSS攻击实验(Elgg)

作业题目 跨站点脚本(XSS)是一种常见于web应用程序中的计算机安全漏洞。此漏洞使攻击者有可能将恶意代码(如JavaScripts)注入受害者的web浏览器。 为了演示攻击者可以做什么,我们在预先构建的Ubuntu VM映像中设置了一个名为Elgg的web应用程序。我们已经注释掉了Elgg的一些…

USB E-Maker用途

E-Marker 是“Electronically Marked Cable”的缩写,是封装在 USB-C端口中的芯片。通过这个芯片,可以得到电缆的各种参数,包括功率、数据、视频传输、ID等信息。由于 Type-C 设备之间的功能差异很大,因此在决策过程中考虑电缆至关重要。例如,如果源和接收设备都需要 100W …

ENVI6.1新功能

ENVI 6.1于2024年10月正式发布,ENVI6.1此版本包括以下新增功能和改进功能:添加了对新的数据类型的支持 空间和光谱裁剪功能增强 新的基于BandMax和SAM的目标探测工作流工具 ENVI API和Modeler中增强的光谱处理 新的光谱指数 新的黑暗模式主题 新增和更新ENVI Toolbox工具 新增…

制作游戏加载进度条

首先,我们需要有一个背景进度条,然后在背景下面添加显示百分比的进度条图片,再创建一个Text,用于显示具体的百分比数字 大致结构如下:然后就是通过代码实现这个功能了:[SerializeField] private Image ProcessBar; [SerializeField] private Text ProcessText; private f…

【Unity】Addressables下的图集(SpriteAtlas)内存优化

前言:资源管理系统:AddressablesUI:模拟NGUI图集Sprite,在UGUI下继承Image增加UIImage组件,实现将SpriteAtlas组件拖拽到属性面板上,切换选择里面的小图问题:在检查项目内存占用过高问题时,发现直接拖拽上去的资源不受Addressables系统的自动引用管理,导致部分资源虽然…

O(∩_∩)O哈哈~

本文来自博客园,作者:一石数字欠我15w!!!,转载请注明原文链接:https://www.cnblogs.com/52-qq/p/18516047