問題:
對於一類文章,每個使用者都有不同的喜好值,我們會想知道某一段時間內註冊的使用者(標號相連的一批使用者)中,有多少使用者對這類文章喜好值為k。
因為一些特殊的原因,不會出現乙個查詢的使用者區間完全覆蓋另乙個查詢的使用者區間(不存在l1<=l2<=r2<=r1)。
輸入描述:
輸入: 第1行為n代表使用者的個數 第2行為n個整數,第i個代表使用者標號為i的使用者對某類文章的喜好度 第3行為乙個正整數q代表查詢的組數輸出描述:第4行到第(3+q)行,每行包含3個整數l,r,k代表一組查詢,即標號為l<=i<=r的使用者中對這類文章喜好值為k的使用者的個數。
資料範圍n <= 300000,q<=300000 k是整型。
輸出:一共q行,每行乙個整數代表喜好值為k的使用者的個數示例1
51 2 3 3 5
31 2 1
2 4 5
3 5 3
102
樣例解釋:有5個使用者,喜好值為分別為1、2、3、3、5,
第一組詢問對於標號[1,2]的使用者喜好值為1的使用者的個數是1
第二組詢問對於標號[2,4]的使用者喜好值為5的使用者的個數是0
第三組詢問對於標號[3,5]的使用者喜好值為3的使用者的個數是2
**
#include#include#include
#include
using
namespace
std;
intmain()
//輸入查詢
int q;cin >>q;
while (q--)
}return0;
}
說明:第一次寫部落格是為了記錄這次的題解,題解花了我乙個下午的時間,
最難懂的一點是,rn - ln 是什麼意思呢,這要聯絡前文**的find(k),find(k)是為了找到興趣是k的所有下標陣列,然後找到max和min的下標,相減即是個數
《位元組跳動》筆試第二題
題目 輸入 第一行輸入乙個數n,表示下邊有幾行。接下來輸入n行,每一行格式為1,2 3,4 5,6.輸出 將重疊部分進行合併的結果,按從小到大輸出。例如 python實現 import sys if name main n input q for i in range n line sys.stdi...
位元組跳動筆試題
要求 輸入陣列長度,然後輸入陣列中的各個元素,最後輸入整數k,要求找出陣列中三個元素小於k的三個元素,例如 輸入陣列長度 6 輸入陣列元素 2 0 1 2 3 6 輸出三元組 共4個 下面給出思路和 思路 1 獲得使用者輸入的陣列長度n,若n不為整數,則提示錯誤。2 建立陣列。3 獲得使用者輸入的陣...
位元組跳動筆試面試經歷
一面是一位和藹的中年程式設計師。1.高階函式 一步一步引導我說出思路!最後面試結束後我查了乙個是乙個js術語。面試官對我說 因為你們學校學習和工作之間是有差距的,所以不會直接問你知識,我會給你一些線索看看你的思路 這個問題大概答出了大半題,大概是這樣。2.筆試經歷 讓我驚訝的是面試官還願意聽聽我筆試...