白駿1966号(ByC++)
10784 ワード
質問する
白準アルゴリズム1966号
この問題は私の理解力が足りないからか、長い時間をかけてやっと分かった.
まずテスト例を受けます.次に、各テストケースで、要素の数と知りたい要素を最初にいくつかに含め、要素を入力します.
混同されているのは、ランキングと同じかどうかです.問題をよく読んでみると、優先順位Qとは少し違うことがわかりました.重要度は同じですが、重要度が落ちると一番後ろになります.だから私はmを入力する私の好奇心のある要素の位置を調整することがこの問題の最大の鍵だと思います.この問題だけを解決すれば、残りの部分は重要度に応じて調整されるので、あまり難しくありません.
コード#コード# #include <iostream>
#include <queue>
using namespace std;
queue<int> q;
int findOrder(int n, int m) {
int ans = 0;
while (!q.empty()) {
int front = q.front();
bool check = true;
for (int i = 0; i < q.size(); i++) {
q.push(q.front());
q.pop();
if (q.front() > front) {
check = false;
}
}
if (!check) {
q.push(q.front());
q.pop();
if (m == 0)
m = q.size() - 1;
else
m--;
} else {
q.pop();
ans++;
if (m == 0)
return ans;
else
m--;
}
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int t;
cin >> t;
for (int i = 0; i < t; i++) {
int n, m;
cin >> n >> m;
// 큐 초기화
while (!q.empty())
q.pop();
for (int i = 0; i < n; i++) {
int k;
cin >> k;
q.push(k);
}
cout << findOrder(n, m) << '\n';
}
return 0;
}
Reference
この問題について(白駿1966号(ByC++)), 我々は、より多くの情報をここで見つけました
https://velog.io/@lah1203/백준-1966번by-C
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
#include <iostream>
#include <queue>
using namespace std;
queue<int> q;
int findOrder(int n, int m) {
int ans = 0;
while (!q.empty()) {
int front = q.front();
bool check = true;
for (int i = 0; i < q.size(); i++) {
q.push(q.front());
q.pop();
if (q.front() > front) {
check = false;
}
}
if (!check) {
q.push(q.front());
q.pop();
if (m == 0)
m = q.size() - 1;
else
m--;
} else {
q.pop();
ans++;
if (m == 0)
return ans;
else
m--;
}
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int t;
cin >> t;
for (int i = 0; i < t; i++) {
int n, m;
cin >> n >> m;
// 큐 초기화
while (!q.empty())
q.pop();
for (int i = 0; i < n; i++) {
int k;
cin >> k;
q.push(k);
}
cout << findOrder(n, m) << '\n';
}
return 0;
}
Reference
この問題について(白駿1966号(ByC++)), 我々は、より多くの情報をここで見つけました https://velog.io/@lah1203/백준-1966번by-Cテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol