[第1章 1.1e1] 约瑟夫问题
67 字
1 分钟
[第1章 1.1e1] 约瑟夫问题
//注意使用erase操作后赋值一定要判断迭代器合法性#include <bits/stdc++.h>using namespace std;typedef long long ll;void solve(){ ll n,m; cin>>n>>m; list<ll> nd; ll nn; for(ll i=1;i<=n;i++)nd.push_back(i); ll st=nd.size(); auto it=nd.begin(); while(nd.size()>0){ for(ll i=0;i<m-1;i++){ it++; nn=*it; if(it==nd.end())it=nd.begin(); } if(nd.size()!=st)cout<<" "; cout<<*it; it=nd.erase(it); if(it==nd.end())it=nd.begin(); } cout<<endl;}int main(){ solve(); return 0;}支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!
相关文章智能推荐
1
总有一天我会搞清楚所有的细节
闲谈杂录如题
2
05异常-断言-日志
深入技术2026-10-26
3
04接口与lambda(案例)
深入技术手敲给出5个案例,辅助读者理解
4
二十岁,以及下一个十年
闲谈杂录二十岁生日这天,谨以此篇文章回望过去并展望下一个十年
5
[第2章 2.2e1] Palindromes
算法竞赛2026-06-27
随机文章随机推荐





