HDU2021多校第五天 1009 Array-树状数组求二阶前缀和

https://acm.hdu.edu.cn/showproblem.php?pid=7020

题目大意:求出区间众数严格大于区间一半大小的子区间的数量。

思路:先对每一个数求出对应的位置排列,S[j]代表1-有多少个i,易得s[r]-s[l]>r-l-(s[r]-s[l])的时候子区间{l+1,r}是合法的,然后呢,我赛时就不知道怎么处理二阶的前缀和,数据结构菜鸡。

可以参考:P4062 [Code+#1]Yazid 的新生舞会

洛谷上的一道一模一样的题

洛谷上的题解:https://www.luogu.com.cn/problem/solution/P4062,HDU的数据比较大 要n*logn

#include <cstdio>
#include <cstring>
#include <string>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <queue>
#include <cstdlib>
#include <stack>
#include <vector>
#include <set>
#include <map>
#include <bitset>
#include <complex>
#define INF 0x3f3f3f3f3f3f3f3f
#define inf 0x3f3f3f3f
#define FILL(a,b) (memset(a,b,sizeof(a)))
#define lson rt<<1
#define rson rt<<1|1
#define lowbit(a) ((a)&-(a))
#define ios std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);
#define fi first
#define sc second
#define pb push_back
#define all(x) (x).begin(),(x).end()
using namespace std;
typedef long long  ll;
typedef unsigned long long  ull;
typedef pair<int,int> pii;
const ll mod=1e9+7;
const ll N =6e6+10;
const double eps = 1e-6;
const double PI=acos(-1);
ll gcd(ll a,ll b){return !b?a:gcd(b,a%b);}
ll re(){ll x;scanf("%lld",&x);return x;}
int dx[8]= {1,0,-1,0,1,1,-1,-1}, dy[8] = {0,1,0,-1,1,-1,1,-1};
int n;
int a[N];
vector<int>b[N];
ll c1[N],c2[N],c3[N];
ll q(int x){ll ans=0;for(int i=x;i>0;i-=lowbit(i)){ans+=c1[i]*(x+2)*(x+1)-c2[i]*(2*x+3)+c3[i];}return ans/2;
}
void add(int x,ll v,int n){//二阶前缀和for(int i=x;i<=n;i+=lowbit(i)){c1[i]+=v;c2[i]+=v*x;c3[i]+=v*x*x;}
}
void solve(){cin>>n;int maxx=0;for(int i=1;i<=n;i++) {cin>>a[i];maxx=max(maxx,a[i]);b[a[i]].pb(i);}ll ans=0;int wc=n+1;for(int i=0;i<=maxx;i++){//if(!b[i].size()) continue;b[i].pb(n+1);int last=0;for(int j=0;j<b[i].size();j++){int x=2*j-(b[i][j]-1)+wc;int y=2*j-last+wc;ans+=q(y-1);if(x>=3) ans-=q(x-2);add(x,1,2*n+1);add(y+1,-1,2*n+1);last=b[i][j];}last=0;for(int j=0;j<b[i].size();j++){int x=2*j-(b[i][j]-1)+wc;int y=2*j-last+wc;add(x,-1,2*n+1);add(y+1,1,2*n+1);last=b[i][j];}b[i].clear();}cout<<ans<<endl;
}
int main()
{iosint t;cin>>t;while(t--) solve();return 0;
}

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

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

相关文章

C# 8 新增小功能

尽管 C# 8 应该会在今年发布&#xff0c;并且 C# 8.x 和 9 的路线图也开始形成&#xff0c;但是&#xff0c;微软正在继续审查下一个版本的特性。目标类型表达式假设我们有 A、B 和 C 三种类型&#xff0c;其中类型 B 和 C 是类型 A 的子类型。如果我们使用如下所示的语句&…

2021HDU多校第五场1004 Another String-双指针

https://acm.hdu.edu.cn/showproblem.php?pid7015 题意&#xff1a;对于每次以i来分割字符串&#xff0c;计算两个分割串的子串的k-匹配的数量。 思路&#xff1a;当我们计算到ans[i]是&#xff0c;我们可以当成从ans[i-1]加上【1-i】字符串和【i1&#xff0c;n】的k-匹配数量…

C# 默认接口方法更新完成,很多细节问题尚待解决

随着对默认接口方法的支持越来越接近完成&#xff0c;一些潜在的问题被提了出来。虽然已经完成了很多工作&#xff0c;但这是一个复杂的特性&#xff0c;许多细节问题还没有解决。但首先&#xff0c;这里有一些已解决的问题。接口允许使用 static 和 const 字段了。除 和! 之外…

2021HDU多校第九场1008HDU7073 Integers Have Friends 2. 随机化

HUD地址&#xff1a;https://acm.hdu.edu.cn/showproblem.php?pid7073 题目大意&#xff1a;选择数组中最多的数&#xff0c;使得他们模m同余&#xff08;m>2&#xff09;。求最大的数量。 思路&#xff1a;然后我们全选奇数或者全选偶数的话&#xff0c;那么我们的答案是…

一个引发程序员们干架的问题

这里是Z哥的个人公众号每周五早8点 按时送达当然了&#xff0c;也会时不时加个餐&#xff5e;我的第「77」篇原创敬上在一个分布式系统的开发团队中&#xff0c;有一些问题是很容易产生程序员之间矛盾的。其中之一就是「业务归属」&#xff0c;就是当新加/修改一个业务的时候&a…

微服务探索与实践—服务注册与发现

前言微服务从大规模使用到现在已经有很多年了&#xff0c;从之前的探索到一步步的不断完善与成熟&#xff0c;微服务已经成为众多架构选择中所必须面对的一个选项。服务注册与发现是相辅相成的&#xff0c;所以一般会合起来思索。其依托组件有很多&#xff0c;比如Zookeeper,Co…

微服务探索与实践—总述

背景软件开发是一个不断发展的过程&#xff0c;从当初的面向过程为主到如今的面向对象的开发&#xff0c;软件开发者不断探索与实践更加符合时代发展要求的开发模式与架构思想&#xff0c;而这&#xff0c;也在极大程度上提高了软件开发的效率。微服务是一种架构模式或者说是架…

这周,全球首个IT技术全中文免费学习平台诞生了!太惊艳!

本周三的Developer Wednesday为大家揭秘了Microsoft Learn网站的全新学习模式一时间Microsoft Learn圈粉无数如果你正在为错过直播而暴风哭泣等一等&#xff0c;看这里&#xff01;全程高清回播将为你持续解密这一次你一定不可以再错过了哦&#xff01;什么是Microsoft Learn&…

十分钟了解Kubernetes

何为Kubernetes?最简单的一句话来概括Kubernetes。它就是一套成熟的商用服务编排解决方案。Kubernetes定位在Paas层&#xff0c;重点解决了微服务大规模部署时的服务编排问题。Kubernetes组件介绍了解Kubernetes都是从Pod开始的。Pod是Kubernetes最小的调度单元&#xff0c;所…

【CF1194E】Count The Rectangles【类扫描线】【单调性】【树状数组】

传送门 题意&#xff1a;给定NNN条与坐标轴平行的线段&#xff0c;保证不垂直的线段没有交点&#xff0c;求一共构成多少个矩形&#xff08;以线段交点为顶点&#xff09;。 1≤N≤50001\leq N\leq50001≤N≤5000 显然是个数据结构乱搞题。 直觉告诉我们先枚举一条线段。 假…

.NET Core 的过去、现在和未来

在最新的微软 Build 大会主题网站上&#xff0c;微软.NET 程序经理 Scott Hunter 发表了一篇文章&#xff0c;指出.NET Core 是.NET 的未来。去年&#xff0c;微软就已经确认 Visual Studio Live 中的.NET 框架将会被.NET Core 取代。将.NET Core 作为开源开发技术栈在 2014 年…

Visual Basic 兴衰记

这是一篇暴露年龄的文章。为什么这么说&#xff1f;因为现在年轻的程序员可能没有接触过当年红极一时的 Visual Basic。28 年前的 1991 年 4 月&#xff0c;Microsoft 发布了 Visual Basic 1.0 for Windows&#xff0c;次年 9 月&#xff0c;发布了 Visual Basic 1.0 for DOS。…

函数式编程里的Materialization应该翻译成什么?

Materialization是函数式编程里的一个专业术语, 用于特指函数式编程中查询被实际执行并生成结果的这一过程.首先, 搜了一下中文资料, 暂时没有对该词的中文翻译, CSDN\博客园\阿里云上所有关于它的文档都没有做中文翻译, 直接沿用这个英文单词.难道轮到我来创造这个词的中文翻…

Ozon Tech Challenge 2020 (Div.1 + Div.2) E.Kuroni and the Score Distribution 构造

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 思路&#xff1a; 不难想到&#xff0c;长度为nnn的数组最多的满足条件的三元组序列是1,2,3....,n1,2,3....,n1,2,3....,n&#xff0c;对于每一个位置贡献为i−12\frac{i-1}{2}2i−1​&#xff0c;那么如果m…

Exceptionless(二) - 使用进阶

作者&#xff1a;markjiang7m2原文地址&#xff1a;https://www.cnblogs.com/markjiang7m2/p/11100563.html官网地址&#xff1a;http://letyouknow.net在上一篇文章Exceptionless - .Net Core开源日志框架中就说到如何对Exceptionless进行本地化部署&#xff0c;不过我也跟大家…

基于 Kong 和 Kubernetes 的 WebApi 多版本解决方案

前言大家好&#xff0c;很久没有写博客了&#xff0c;最近半年也是比较的忙&#xff0c;所以给关注我的粉丝们道个歉。去年和朱永光大哥聊的时候提了一下我们的这个方案&#xff0c;他说让我有空写篇博客讲一下&#xff0c;之前是非常的忙&#xff0c;所以这次趁着有些时间就写…

CodeCraft-20 (Div. 2) D. Nash Matrix 构造 + dfs

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给定一个n∗nn*nn∗n的矩阵&#xff0c;每个点上面都有一个xi,yix_i,y_ixi​,yi​&#xff0c;表示这个点到xi,yix_i,y_ixi​,yi​这个点停下&#xff0c;当xi−1,yi−1x_i-1,y_i-1xi​−1,yi​−1的时候代表…

从严治码-别人在项目中下毒,我该怎么治?

01 从软考说起从4月份开始&#xff0c;由于备考《系统集成项目管理工程师》的原因&#xff0c;博客没有持续更新&#xff0c;在上半年考试结束之后&#xff0c;又对项目进行了一些收尾的工作。下面就这段时间的学习作一个记录和总结吧。在学习的过程中&#xff0c;提炼了一些自…

学习MVVM设计模式后第一次用于生产

WPF的MVVM设计模式从winform转变到WPF的过程&#xff0c;难点主要还是在MVVM的设计模式。当然&#xff0c;如果依然采用winform的涉及方式&#xff0c;在每个控件背后绑定事件的方式运用在wpf中&#xff0c;依然可行&#xff0c;但是假如GUI改版&#xff0c;其背后绑定的特别为…

netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源

基于netcore2.0 mvc 开发的 快速搭建具有如下特色的后台管理系统用户管理菜单管理角色管理权限管理[精确到按钮]&#xff09;代码生成器代码克隆到本地 用vs2017或以上版本 打开工程。项目结构如下&#xff1a;找到DbModel下面的初始化db脚本里面包含4张表的schema和初始化数据…