CCF学生排队
Posted legendcong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CCF学生排队相关的知识,希望对你有一定的参考价值。
这题如果考虑考虑用数组折腾会非常麻烦,如果想到用vector的insert函数和erase函数就会非常舒服的模拟出来。vt.erase(it)之后it就变成了野指针,所以要用it=erase(it),这样it就会自动指向下一个元素。
#include<cstdio> #include<iostream> #include<vector> #include<algorithm> #include<string.h> using namespace std; int main() { int n, k; cin >> n; getchar(); cin >> k; vector<int>vt; int i; for (i = 0; i < n; i++) { vt.push_back(i+1); } int s, p; vector<int>::iterator it = vt.begin(); while (k--) { cin >> s >> p; for (it=vt.begin(); it != vt.end(); it++) { if(*it==s) { it = vt.erase(it); vt.insert(it + p, s); break; } } } for (it = vt.begin(); it != vt.end(); it++) { cout << *it << ‘ ‘; } cout << endl; }
以上是关于CCF学生排队的主要内容,如果未能解决你的问题,请参考以下文章