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
  • 相关阅读:
    改变传统电视对客厅文化的影响
    移动终端三分天下 何与争峰
    全球移动IM应用的迅猛发展前景
    电子医疗的发展和实现
    poj 1523(无向图求割点)
    poj 3255(次短路)
    poj 2125
    poj 3204
    图的连通度问题的求法(转)
    poj 3308
  • 原文地址:https://www.cnblogs.com/moyujiang/p/11167782.html
Copyright © 2011-2022 走看看