ABC 085 B Kagami MochiとABC 091 B Two Colors Card Game
setとmapを使う問題。
c++で set と map を使ったことがなかったので、調べてやってみる。
#include <cstdio> #include <set> using namespace std; // auto は型推論 int D[100], N; int main() { scanf("%d", &N); set<int> st; int d; for (int i = 0; i < N; i++) { scanf("%d", &d); st.insert(d); } // C++ での、何かの大きさを参照するときは、size printf("%lu\n", st.size()); return 0; }
覚えるべきは、
#include<set> std::set<class> var; var.insert(value); var.size();
らへん。
#include <iostream> #include <map> #include <algorithm> using namespace std; int N, M; int main() { map<string, int> mp1; cin >> N; string s; for (int i = 0; i < N; i++) { cin >> s; mp1[s]++; } cin >> M; string t; map<string, int> mp2; for (int i = 0; i < M; i++) { cin >> t; mp2[t]++; } int ans = 0; for (auto i = mp1.begin(); i != mp1.end(); i++) { ans = max(ans, mp1[i->first]-mp2[i->first]); } cout << ans << endl; return 0; }
こっちの覚えるべき点は、
#include <map> map<class1, class2> mp; mp[key]; // 参照
らへんかな。
DP終わってないけど、少し飽きたので、先に進みます。明日は、Union-find木の問題やります。