修改陣列
題目描述給定乙個長度為n 的陣列a = [a1, a2,…,an],陣列中有可能有重複出現的整數。
現在小明要按以下方法將其修改為沒有重複整數的陣列。小明會依次修改a2,a3,…, an。
當修改ai 時,小明會檢查ai 是否在a1~ ai-1 **現過。
如果出現過,則小明會給ai 加上1 ;
如果新的ai 仍在之前出現過,小明會持續給ai加1 ,直到ai沒有在a1~ ai-1**現過。
當an也經過上述修改之後,顯然a陣列中就沒有重複的整數了。
現在給定初始的a 陣列,請你計算出最終的a 陣列。
輸入第一行包含乙個整數n(1<=n<=100000)
第二行包含n個整數a1,a2,…,an(1<=ai
<=1000000)
輸出輸出n個整數,依次是最終的a1,a2,…,an
樣例輸入兩種方法都是一樣的,第二種更快一點,用雜湊表記錄從x點開始連續出現過的數有幾個52 1 1 3 4
樣例輸出
2 1 3 4 5
#include
#include
#include
#include
#include
using namespace std;
const
int max=
1e6+10;
map<
int,
int>mp;
//mp[x]記錄從x開始有幾個連續的數已經出現過
int a[max]
;int
find
(int x)
int t=
find
(x+mp[x]);
mp[x]
=t-x+1;
//printf("%d\n",mp[x]);
return t;
}int
main()
for(
int i=
0;i)printf
("%d "
,a[i]);
return0;
}
#include
#include
using namespace std;
int a[
100001];
int b[
2000001];
intmain()
b[a[i]]=
1;}for
(int i=
1;i<=n;i++
) cout<<<
" ";
return0;
}
外賣店優先順序題目描述「飽了麼」外賣系統中維護著n 家外賣店,編號1~n。
每家外賣店都有乙個優先順序,初始時(0 時刻) 優先順序都為0。
每經過1 個時間單位,如果外賣店沒有訂單,則優先順序會減少1,最低減到0;
而如果外賣店有訂單,則優先順序不減反加,每有一單優先順序加2。
如果某家外賣店某時刻優先順序大於5,則會被系統加入優先快取中;
如果優先順序小於等於3,則會被清除出優先快取。
給定t 時刻以內的m 條訂單資訊,請你計算t 時刻時有多少外賣店在優先快取中。
輸入第一行包含3 個整數n、m 和t。
以下m 行每行包含兩個整數ts 和id,表示ts 時刻編號id 的外賣店收到乙個訂單
1<=n, m, t<=100000,1<=ts<=t,1<=id<=n。
輸出輸出乙個整數代表答案。
樣例輸入
2 6 6
1 15 2
3 16 2
2 16 2
樣例輸出
1
#include
#include
#include
#include
#include
using namespace std;
const
int max=
1e6+10;
struct aaa
x[max]
;int num[max]
,times[max]
,flag[max]
;int
cmp(aaa a,aaa b)
intmain()
for(
int i=
1;i<=n;i++
)printf
("%d\n"
,ans)
;return0;
}
藍橋杯2019初賽 迷宮
迷宮 下圖給出了乙個迷宮的平面圖,其中標記為1 的為障礙,標記為0 的為可 以通行的地方。010000 000100 001001 110000 迷宮的入口為左上角,出口為右下角,在迷宮中,只能從乙個位置走到這 個它的上 下 左 右四個方向之一。對於上面的迷宮,從入口開始,可以按drrurrdddr...
1462 藍橋杯2019初賽 組隊
題目 作為籃球隊教練,你需要從以下名單中選出1 號位至5 號位各一名球員,組成球隊的首發陣容。每位球員擔任1號位至5號位時的評分如下表所示。請你計算首發陣容1號位至5號位的評分之和最大可能是多少?思路 題目難度不大,給了20個人,每個人可能有多種位置的選擇,若想要達到所有位置之和是最大值,即保證每乙...
藍橋杯2019初賽 試題D 迷宮
嗚嗚嗚 這題做了我好久好久,一開始拿dfs寫了半天,寫是寫出來了,但是實在是太大了,笑死,根本搜不出來,後來又在網上看各種各樣的題解,總算給我給搞出來了,因為bfs本身沒有dfs掌握的牢固,所以有些不太敢拿bfs寫,晚上要把bfs的基本功加強一下,加油加油!include include using...