# uva11991 - AVL 包 vector用法 ###### tags: `STL` 今天寫這題 但吃了一個TLE 看到了一個寫法 大致上就是用一顆AVL 然後節點中包vector去紀錄出現的地方 思考方向是出現的地方只會越來越後面(index),所以用vector記錄位置,還可以用size()去拿大小 ``` #include <iostream> #include <vector> #include <map> int main(int argc, char const *argv[]) { int n, m, k, v; std::map<int, std::vector<int> > map; while(std::cin >> n >> m) { map.clear(); for(int i = 0; i < n; i++) { std::cin >> v; map[v].emplace_back(i + 1); } for(int i = 0; i < m; i++) { std::cin >> k >> v; if(map[v].size() < k) std::cout << 0 << "\n"; else std::cout << map[v][k - 1] << "\n"; } } return 0; } ``` 2019/8/12