樓爾邦德
時間限制:2 sec
空間限制:256 mb
問題描述
給定包含 n 個數的序列 a。
再給出 q 個詢問,每個詢問包含乙個數 x,詢問的是序列 a 中不小於 x 的最小整數是多少(無解輸出-1)。
輸入格式
第一行乙個數 n,表示序列長度。
第二行 n 個用空格隔開的正整數,描述序列中的每乙個元素。保證這些元素都不會超過 10^9。
第三行乙個正整數 q,表示詢問個數。
接下來 q 行,每行乙個正整數 x,描述乙個詢問。
輸出格式
輸出 q 行依次回答 q 個詢問,每行乙個正整數,表示對應詢問的答案。
樣例輸入
33 2 561
2345
6樣例輸出22
355-1
#include #include #include using namespace std;
vectorgetanswer(int n,int m,vectorq,vectorqn)
if(r >= n)//此時說明所有的元素都比查詢的值小 返回-1
ans.push_back(-1);
else
ans.push_back(q[r]);
}return ans;
}int main(int argc, char const *argv)
//m代表詢問個數
//qn代表詢問的值
int m;
scanf("%d",&m);
vectorqn;
for(int i = 0;i < m;i++)
//返回詢問結果
vectorfin = getanswer(n,m,q,qn);
for(int i = 0;i < m;i++)
return 0;
}
鄧俊輝演算法訓練營習題 最小交換
最小交換 時間限制 1 sec 空間限制 256 mb 問題描述 給定乙個 1 到 n 的排列 即乙個序列,其中 1,n 之間的正整數每個都出現了恰好 1 次 你可以花 1 元錢交換兩個相鄰的數。現在,你希望把它們公升序排序。求你完成這個目標最少需要花費多少元錢。輸入格式 第一行乙個整數 n,表示排...
鄧俊輝 演算法訓練營練習 數字盒子
數字盒子 問題描述 你有乙個盒子,你可以往裡面放數,也可以從裡面取出數。初始時,盒子是空的,你會依次做 q 個操作,操作分為兩類 插入操作 詢問盒子中是否存在數 x,如果不存在則把數 x 丟到盒子裡。刪除操作 詢問盒子中是否存在數 x,如果存在則取出 x。對於每個操作,你需要輸出是否成功插入或刪除。...
鄧俊輝 演算法訓練營練習 二叉排序樹
先序遍歷 輸出自己 左子樹 右子樹 中序遍歷 輸出左子樹 自己 右子樹 include using namespace std struct node t 10000 root代表根節點 cnt代表二叉樹大小 int root,cnt 建樹 int insert int v,int x t x lc...