https://atcoder.jp/contests/abc091/tasks/arc092_a
こちらの問題の下記の解答コードについて質問させていただきます。二部マッチング?と呼ばれるものでも解けるらしいのですが普通に貪欲法で解ける問題と紹介されていたので取り組んでみました。
#include <bits/stdc++.h> using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define all(v) v.begin(), v.end() #define ll int64_t #define _GLIBCXX_DEBUG int main() { int n; cin >> n; vector<pair<int,int>> a(n); vector<pair<int,int>> b(n); rep(i,n) cin >> a[i].second >> a[i].first;//1 sort(a.rbegin(),a.rend());//2 rep(i,n) cin >> b[i].first >> b[i].second;//1 sort(b.begin(),b.end()); int c=0; rep(i,n){ rep(j,n){ if((b[i].first>a[j].second)&&(b[i].second>a[j].first)){ a[j]=make_pair(300,300); c++; break; } } } cout << c << endl; }
####質問
1.aの入力に関してはcin >> a[i].second >> a[i].first;
となっていますがbに関しては順番が逆になっていますがこれはどのような意図があるのでしょうか?
2.ここでのsortはa[i].first
に関してですか?それともa[i].second
に関してですか?それともどちらも独立にsortしてるのでしょうか?
以上になります。よろしくお願い致します。
何か延々とどこぞの問題のコードについて質問しているみたいですが,
他人のコードを読めるだけの基礎的な力量を見に付けることを先に行った方が良いように思えます.
あるいは訊く前に自分で調べることを行うべき.本件なら質問2の「std::sortが何やってるの?」なんてのはさっさとググれば解決する事柄.
その過程でstd::pairのoprator<について調べることになるだろうから質問1も自然解決する.
すいません、申し上げておりませんでしたが一応自分でも事前に2,30分ほどググりましたがわからなかったので質問させていただきました。「c++ pair sort」「c++ pair 入力」「pair sort secondだけ」などで調べてみたりリファレンスみたりしたのですがわからなかったです。申し訳ありません。
回答1件
あなたの回答
tips
プレビュー