質問編集履歴

2

追記2(vectorの要素数について)を追加しました

2019/02/11 15:37

投稿

l_h_l_h
l_h_l_h

スコア22

test CHANGED
File without changes
test CHANGED
@@ -123,3 +123,17 @@
123
123
  一応、普通の配列でもできないかどうか少し気になっているので質問は数日間残しておきます(回答がつかなければそのまま自己解決という形にさせていただきます)
124
124
 
125
125
  配列を使った方法は、pについてクイックソートを使うときにその数字が元々何番目だったかなどの情報を保持しておけばいけるのではないかと考えたのですが、私の実装力では試せませんでした
126
+
127
+
128
+
129
+ 追記2:何度もすみません
130
+
131
+ 上述のプログラムについて、vector<ll>py[m];をvector<ll>py[100001];に変えたところ正解扱いになったのですが
132
+
133
+ vector<ll>py[m];のままだといくつかのテストケースで実行時エラーとなってしまいました
134
+
135
+ pyにpushしていくデータ数はmで間違いないと思うのですが、vector内ではどのようにデータの処理が行われているのでしょうか
136
+
137
+ 色々試したところ[m+1]なら3つほど実行時エラー、[m*2]なら1つだけ実行時エラーが返ってきました
138
+
139
+ 何度も申し訳ありませんが分かる方いらっしゃいましたらご助言お願いします

1

追記を追加しました

2019/02/11 15:37

投稿

l_h_l_h
l_h_l_h

スコア22

test CHANGED
File without changes
test CHANGED
@@ -99,3 +99,27 @@
99
99
 
100
100
 
101
101
  どれか1つについてで良いので、もしよければ回答よろしくお願いします
102
+
103
+
104
+
105
+ 追記:イテレータについて勘違いしていたようです
106
+
107
+ 注意深く調べたところ
108
+
109
+ *lower_bound(py[p[i]].begin(),py[p[i]].end(),y[i]) なら中身の数値
110
+
111
+ lower_bound(py[p[i]].begin(),py[p[i]].end(),y[i]) なら数値の番地
112
+
113
+ lower_bound(py[p[i]].begin(),py[p[i]].end(),y[i])-py[p[i]].begin() なら「数値の番地-先頭の数値の番地」すなわち「数値が何番目か」
114
+
115
+ ということであると分かりました
116
+
117
+ 出力に関してもキャストを外したところ無事実行でき、上記のそれぞれを自分で確認できました
118
+
119
+ 要はこちらの不注意でした、申し訳ありません。また、ご指摘いただいた方は有難うございました
120
+
121
+
122
+
123
+ 一応、普通の配列でもできないかどうか少し気になっているので質問は数日間残しておきます(回答がつかなければそのまま自己解決という形にさせていただきます)
124
+
125
+ 配列を使った方法は、pについてクイックソートを使うときにその数字が元々何番目だったかなどの情報を保持しておけばいけるのではないかと考えたのですが、私の実装力では試せませんでした