校長的問題

2021-09-29 01:49:40 字數 825 閱讀 9998

學校中有 n 名學生,學號分別為 1…n。再一次考試過後,學校按照學生的分數排了乙個名次(分數一樣,按照名字的字典序排序)。你是一名老師,你明天要和校長匯報這次考試的考試情況,校長詢問的方式很奇怪,比如說:「學號前 a 的人中,排名前 b 的有多少人?」。

校長問了一堆這樣的問題,你需要今天全部計算出來,明天好向他匯報。

輸入格式

第一行倆個整數,n 和 m,分別表示學校學生的數量和校長問題的數量。(1≤n,m≤10^5)

第二行有 n 個整數,表示按學號順序這 n 個學生在這次考試中對應的排名。

接下來 m 行,每行倆個整數 a, b 表示校長的問題中的具體數字。(1≤a,b≤n)

輸出格式

輸出 m 行,每行乙個整數代表校長問題的答案。

樣例輸入63

3254

6144

2564

樣例輸出32

4

#include

using

namespace std;

const

int max_n =

100001

;int c[max_n]

;int data[max_n]

;int n;

intlowbit

(int x)

intgetsum

(int a)

void

change

(int x,

int c,

int y)

intmain()

return0;

}

UVA 10187 校長的煩惱

可以用二進位制表示子集,這種表示方法真的非常省時間空間,其中從右往左第i位 從0開始編號 表示元素i是否在集合中 1表示 在 0表示 不在 e.g.二進位制的1111換算成十進位制就是15,如果用15代表全集a的話,那麼1101b b是二進位制 即13d 十進位制 就代表了a的乙個具有第1 第3 第...

UVA 10817 校長的煩惱

根據s的範圍我們可以考慮集合dp,一種相對容易的方法是用集合s1表示恰好有乙個人教授的科目集合,s2表示至少有兩個人教授的科目集合,f i,s1,s2 表示已經考慮了前i個人時的最小花費。狀態轉移方程為 f i,s1,s2 min其中第一種情況是聘用第i個人,第二種為不聘用。這裡要注意第二種情況當且...

計蒜客習題 校長的問題 樹狀陣列 離線查詢

由於蒜廠沒法複製 題意就是給你n個按學號排序的成績 m個查詢 a b 意思為學號為前a名同學有多少前b名成績 就是用樹狀陣列維護每個數字出現多少次 對於查詢我們進行離線操作 第一次接觸 以後要掌握 就可以解決了 這是我第一道離線查詢的題目希望能掌握 by ljjjjjq include includ...