學校中有 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...