【vector的输出问题】 洛谷 P1996 约瑟夫问题
题目:P1996 约瑟夫问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
可恶啊,本来是一道不算难的题,硬是因为cin,cout同步流卡了我一天qwq
关闭cin,cout同步流后,就无法输出vector了
vector的erase时间复杂度是大于O(1)但小于O(n)的,总体来说不算慢
代码:
#include <iostream> #include <vector> using namespace std; typedef long long ll; vector<int> s; int main() { // ios::sync_with_stdio(false);//就是这三行代码,注释掉就可以正常输出了 // cin.tie(0); // cout.tie(0); int n, m; cin >> n >> m; for (int i = 1; i <= n; ++i) { s.push_back(i); } int t = 0; for (int i = 1; i <= n; ++i) { t += m - 1; t %= s.size(); cout << s[t] << " "; s.erase(s.begin() + t); } return 0; }