博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVa 133 The Dole Queue
阅读量:4680 次
发布时间:2019-06-09

本文共 1059 字,大约阅读时间需要 3 分钟。

解题思路:约瑟夫环。具体见代码:

1 #include
2 using namespace std; 3 int n, k, m, vis[24]; //24,向科比致敬,像科比一样努力的活着。 4 5 int go(int p, int d, int t) 6 { 7 while(t--) 8 { 9 do{10 p = (p+d+n-1)%n + 1; //在纸上写写就知道11 }while(vis[p]==0); //如果是0,则继续走,并且不计入步数。12 }13 return p; //返回走到的位置14 }15 16 int main()17 {18 while(~scanf("%d%d%d", &n, &k, &m) && n)19 {20 for(int i = 1; i <= n; i++) vis[i] = i;//初始化21 int left = n, p1 = n, p2 = 1; //这里的初始化要注意22 while(left)23 {24 p1 = go(p1, 1, k); //1表示逆时针25 p2 = go(p2, -1, m); //-1表示顺时针26 printf("%3d", vis[p1]);27 left --;28 if(p2 != p1) //如果不同才输出29 {30 printf("%3d", vis[p2]);31 left --;32 }33 vis[p1] = vis[p2] = 0; //标记为0,表示已走过34 if(left) printf(","); //最后一个没有标点35 }36 printf("\n");37 }38 return 0;39 }
View Code

 

转载于:https://www.cnblogs.com/loveprincess/p/4835328.html

你可能感兴趣的文章
我该如何奋斗?
查看>>
java的RandomAccessFile类
查看>>
在ASP.NET MVC中使用DropDownList
查看>>
在一个类里面调用别一个类的函数
查看>>
树状数组
查看>>
echarts演示笔记
查看>>
POJ3216 最小路径覆盖
查看>>
数据库的独立子查询以及数据的删除、更新和建立视图的笔记
查看>>
mybatis使用-helloword(一)
查看>>
openssl c AES/CBC/PKCS5Padding 与java代码对应
查看>>
Xcode7 添加PCH文件
查看>>
pyhton 监听文件输入实例
查看>>
C++中的静态成员函数
查看>>
xpath获取一个标签下的多个同级标签
查看>>
提高调试.net cf程序效率一些技巧
查看>>
Jupyter Notebook不能在系统命令行里全局启动
查看>>
将博客搬至CSDN
查看>>
非常详细GC学习笔记
查看>>
POJ 3414 Pots([kuangbin带你飞]专题一 简单搜索)
查看>>
2017.5.24 在intelliJ IDEA 中生成war包
查看>>