【模拟】(正解树状数组)-校长的问题-C++-计蒜客
描述
学校中有 n 名学生,学号分别为 1 - n。再一次考试过后,学校按照学生的分数排了一个名次(分数一样,按照名字的字典序排序)。你是一名老师,你明天要和校长汇报这次考试的考试情况,校长询问的方式很奇怪,比如说:“学号前 a 的人中,排名前 b 的有多少人?”。
校长问了一堆这样的问题,你需要今天全部计算出来,明天好向他汇报。
输入
第一行俩个整数,n 和 m,分别表示学校学生的数量和校长问题的数量。(1 <= n, m <= 10^5)
第二行有 n 个整数,表示按学号顺序这 n 个学生在这次考试中对应的排名。
接下来 m 行,每行俩个整数 a, b 表示校长的问题中的具体数字。(1≤a,b≤n)
输出
输出 mm 行,每行一个整数代表校长问题的答案。
输入样例 1
6 3
3 2 5 4 6 1
4 4
2 5
6 4
输出样例 1
3
2
4
这道题目的正解本来是树状数组,但是由于我还没有接触 所以想都没想到,索性直接按照题目一波暴力模拟,可是我提交就ac了 ,接下来上代码,每段分别对应题目中相应的环节。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int a_[100000+1];
int main()
{
int n,m,a,b;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>a_[i];
}
for(int i=1;i<=m;i++)
{
cin>>a>>b;
int ans=0;
for(int i=1;i<=a;i++)
{
if(a_[i]<=b)ans++;
}
cout<<ans<<endl;
}
return 0;
}
比用树状数组还短
ov.
个人博客地址: www.moyujiang.com 或 moyujiang.top
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)