P2709 小B的询问

2024-08-28 00:44
文章标签 询问 p2709

本文主要是介绍P2709 小B的询问,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

*原题链接*

非常简单的莫队板子题,让我们求出区间[l,r]中每个数出现次数的平方和,设枚举到a_i,原来答案是res,如果加上a_i后,则原来的cnt_{a_i}^{2}变为(cnt_{a_i}+1)^{2},即res相比原来加上2*cnt_{a_i}+1,删除同理。知道如何维护一个数的添加和删除后,剩下的套莫队板子就行了。

#include<bits/stdc++.h>
using namespace std;
const int N=5e4+10;int n,m,k,t,a[N],ans[N],pos[N],cnt[N],res;struct node{int l,r,id;
}que[N];bool cmp(node a,node b){if(pos[a.l]==pos[b.l]) return a.r<b.r;return a.l<b.l;
}void del(int x){res+=-2*cnt[a[x]]+1;cnt[a[x]]--;
}void add(int x){res+=2*cnt[a[x]]+1;cnt[a[x]]++;
}int main(){cin>>n>>m>>k;for(int i=1;i<=n;i++) cin>>a[i];t=sqrt(n);for(int i=1;i<=n;i++) pos[i]=(i-1)/t+1;for(int i=1;i<=m;i++) cin>>que[i].l>>que[i].r,que[i].id=i;sort(que+1,que+1+m,cmp);for(int i=1,l=1,r=0;i<=m;i++){while(l<que[i].l) del(l++);while(r>que[i].r) del(r--);while(l>que[i].l) add(--l);while(r<que[i].r) add(++r);ans[que[i].id]=res;}for(int i=1;i<=m;i++) cout<<ans[i]<<endl;return 0;
}

这篇关于P2709 小B的询问的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1113250

相关文章

【HDU】5574 Colorful Tree【子树染色,询问子树颜色数——线段树+bit+lca+set】

题目链接:【HDU】5574 Colorful Tree 题目大意:对一个子树染色,询问一个子树的颜色数。 题目分析: set set维护每种颜色所在的 dfs dfs序区间,修改均摊 nlogn nlogn。 #include <bits/stdc++.h>using namespace std ;typedef long long LL ;typedef pair < int , i

人工智能和机器学习5 (复旦大学计算机科学与技术实践工作站)语言模型相关的技术和应用、通过OpenAI库,调用千问大模型,并进行反复询问等功能加强

前言        在这个日新月异的AI时代,自然语言处理(NLP)技术正以前所未有的速度改变着我们的生活方式和工作模式。作为这一领域的佼佼者,OpenAI不仅以其强大的GPT系列模型引领风骚,还通过其开放的API接口,让全球开发者能够轻松接入并探索AI的无限可能。今天,我将带大家一起探索如何使用OpenAI库来调用“千问大模型”(这里假设的模型名,实际中可能是GPT-3、GPT-4或其他类似的

hdu4777 Rabbit Kingdom 离线树状数组 求询问区间内的区间数

题意:询问区间内有多少个数与区间中其他的数都互质 分析:易得,一个区间内的数的个数减去,与其他数不互质的数即可——即离当前数i左边最近的不互质的数的位置(设为L[i])和右边最近的不互质的数的位置(设为R[i])有一个在区间[L,R]内。那么问题就变成统计:1.区间[L,R]中有多少个数的L[i]或R[i]在区间[L,R]内。2.多少个数的L[i]且R[i]在区间[L,R]内。对于每个询问,答案

[CSU - 1811 (湖南省赛16)] Tree Intersection (dfs序维护子树+离线询问+树状数组)

CSU - 1811 (湖南省赛16) 给定一棵树,每个节点都有一个颜色 问割掉任意一条边,生成的两个子树中颜色集合的交集大小 这个是 dfs序处理子树 + 离线询问 + bit维护 的解法 首先问题转化为求解一个子树中有多少种颜色以及独有颜色的数量 用总的颜色数量减去独有颜色数量即为这棵子树的答案 先做一遍 dfs,再按 dfs序重新组建颜色序列 这样对子树的询问,就变成

客户出问题后的询问流程(待完善)

报什么错能截图吗怎么操作的希望达到什么目标

基于Vue的前端自定义询问弹框与输入弹框组件的设计与实践

基于Vue的前端自定义询问弹框与输入弹框组件的设计与实践 摘要 随着技术的不断进步,前端开发面临越来越多的挑战,其中之一就是如何有效管理复杂的业务逻辑和用户体验。传统的整块应用开发方式在面对频繁的功能变更和用户体验优化时,往往显得捉襟见肘。为了解决这个问题,组件化开发成为了前端领域的重要趋势。本文介绍了一款基于Vue的前端自定义询问弹框和输入弹框组件,通过组件化开发的思想,实现了功能的独立开发

关于很多新人询问ClassNotFoundException和MethodNotFoundException如何解决

对于Java新手来说,经常碰到的这两个ClassNotFoundException、MethodNotFoundException 第一个ClassNotFoundException类没找到 第二个MethodNotFoundException方法没找到 很多新手会提问,哎,这个类我有啊,你看我的代码!这个方法我有啊!你看我的代码! 此类问题,基本不会去看新手发的各种图。 我一般直接了当

LangChain-15 Manage Prompt Size 管理上下文大小,用Agent的方式询问问题,并去百科检索内容,总结后返回

背景描述 这一节内容比较复杂: 涉及到使用工具进行百科的检索(有现成的插件)有AgentExecutor来帮助我们执行后续由于上下文过大, 我们通过计算num_tokens,来控制我们的上下文 安装依赖 pip install --upgrade --quiet langchain langchain-openai wikipedia 代码编写 GPT 3.5 Turbo 解决这个

对于产品经理询问新产品有何建议的答复

周五,某某产品的产品经理突然找到我,说“我们下一步有一个关于某某的新产品,你有什么建议?”。因为我一个月前开始接手一个同事测试一半的项目,里面用到了此老(区分新旧)产品。 首先说明下,(该产品为我们公司收购的公司,14年底收购)我现在测试的老产品是一个做了1年的项目,知道我接手项目我才发现,这个项目一年多以来竟然没有需求文档、需求规格说明书、研发设计文档等等,我和前任交接整理项目时我才明白为什么

Java Swing 自定义Dialog确认对话框、窗口关闭时弹出对话框询问

Java Swing 自定义Dialog确认对话框 Java Swing 自定义Dialog Java Swing 自定义Dialog 需求:当点击JFrame窗口的关闭按钮时,弹框询问是否确定关闭窗口,如果是则关闭程序,否就让弹框消失什么也不做(使用Dialog)。分析:虽然Java提供了 JOptionPane 类,用来创建标准对话框,但是此处需要使用Dialog来提供弹框。