#20727: 用set+map很勉強的過法(C++)


yes51851823@gmail.com (wseds)

學校 : 國立花蓮高級工業職業學校
編號 : 108813
來源 : [114.36.212.168]
最後登入時間 :
2024-10-17 21:35:26
a091. 今晚打老虎 | From: [114.44.213.176] | 發表日期 : 2020-02-25 20:47

因為set可以自動排列,所以我們可以利用它來排列,但是set是不會有重複元素的,所以可以另外宣告一個<int,int>的map來存放重複的元素。

if(B.count(A)){
  if(C[A]){
    ++C[A];
  }
  else{
    C[A]=1;
  }
}
else{
  B.insert(A);
}

而輸出極值後,可判斷剛剛輸出的極值是否存在map中,若存在則補充回set中。

if(C[a]){
  B.insert(a);
  --C[a];
}

 
#20728: Re:用set+map很勉強的過法(C++)


yes51851823@gmail.com (wseds)

學校 : 國立花蓮高級工業職業學校
編號 : 108813
來源 : [114.36.212.168]
最後登入時間 :
2024-10-17 21:35:26
a091. 今晚打老虎 | From: [114.44.213.176] | 發表日期 : 2020-02-25 20:48

因為set可以自動排列,所以我們可以利用它來排列,但是set是不會有重複元素的,所以可以另外宣告一個<int,int>的map來存放重複的元素。

if(B.count(A)){
  if(C[A]){
    ++C[A];
  }
  else{
    C[A]=1;
  }
}
else{
  B.insert(A);
}

而輸出極值後,可判斷剛剛輸出的極值是否存在map中,若存在則補充回set中。

if(C[a]){
  B.insert(a);
  --C[a];
}

 

set<int> B;

map<int,int> C;

 

 
ZeroJudge Forum