Files
python/TangDou/XiTi/1376.cpp
HuangHai 1f397eca87 'commit'
2025-08-30 18:35:01 +08:00

39 lines
1.0 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <bits/stdc++.h>
using namespace std;
//好题!
//如果需要性能上的优化,防止TLE的话:https://blog.csdn.net/QQGUOsiBO/article/details/104215038
int main() {
//key:原来牌的位置索引,value是指牌的号
map<int,int> _map;
int n;
cin >> n;
queue<int> q;
for (int i = 1; i <= n; ++i) {
q.push(i);
}
int count = 0;
while (!q.empty()) {
//弹出最上面
int out = q.front();
q.pop();
//第几个出列了
count++;
_map[out] = count;
//需要向后移动count+1张牌
if (!q.empty()) {
for (int i = 0; i < count + 1; ++i) {
int t = q.front();
q.pop();
q.push(t);
}
}
}
//遍历_map进行输出,因为_map是按key有序的,所以可以直接输出
for(map<int,int>::iterator it=_map.begin();it!=_map.end();it++)
cout<<it->second<<" ";
return 0;
}