【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;
}

 

posted @ 2021-12-02 17:07  blockche  阅读(86)  评论(0编辑  收藏  举报