zoukankan      html  css  js  c++  java
  • 【模拟】(正解树状数组)-校长的问题-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
  • 相关阅读:
    MFC Windows 程序设计>WinMain 简单Windows程序 命令行编译
    AT3949 [AGC022D] Shopping 题解
    CF643D Bearish Fanpages 题解
    CF643C Levels and Regions 题解
    CF241E Flights 题解
    CF671C Ultimate Weirdness of an Array 题解
    CF1592F Alice and Recoloring 题解
    GYM 102452E 题解
    CF494C Helping People 题解
    P5556 圣剑护符
  • 原文地址:https://www.cnblogs.com/moyujiang/p/11167782.html
Copyright © 2011-2022 走看看