渣渣ACM日记——278-排队(NYOJ)
2015-06-21 11:42
190 查看
排队
时间限制:3000 ms | 内存限制:65535 KB难度:1描述周末了,软件ACM的队员准备玩玩游戏,娱乐一下,CY想了一个好主意,所有队员站成一个圈,从1开始报数,凡是报出指定数字的人要出列,有人出列后,下个人重新从1开始报数。最后一位“幸存者”要给大家表演个节目。由于队员正在不断的壮大,C小加又想知道他是否需要准备表演,请你设计个程序,帮他确定他是否是“幸存者”。输入第一行是n,有n次游戏,第二行是m,x,表示某次游戏有m个人,指定被请出列的数字为x。其中n<100,m<1000输出最后幸存的那位的原来的号码样例输入2 10 5 6 4样例输出
3 5
//AC代码 模拟 效率低 不科学
#include <iostream>#include <queue>using namespace std;int main(){queue<int> q;int t,i,m,x;cin>>t;while(t--){cin>>m>>x;for(i=1;i<=m;i++){q.push(i);}int tmp;while(q.size()!=1){for(i=1;i<x;i++){tmp=q.front();q.pop();q.push(tmp);}q.pop();}cout<<q.front()<<endl;q.pop();}return 0;}//查了资料 这是关于约瑟夫环问题 有递推公式 f[0]=0; f[i]=(f[i-1]+x)%i;[/code]
//AC代码:
#include <iostream>using namespace std;int main(){int t,i,m,x;cin>>t;int f[1001];while(t--){cin>>m>>x;f[0]=0;for(i=1;i<=m;i++){f[i]=(f[i-1]+x)%i;}cout<<f[m]+1<<endl;}return 0;}[/code]
相关文章推荐
- ubuntu日常使用常用快捷键(待补充)
- 长轮询解决方案
- 黑马程序员——学习日记之--Java网络编程小结
- 数组结对开发
- redis翻译_redis lua脚本
- 多态机制
- .pb.h:9:42: fatal error: google/protobuf/stubs/common.h: No such file or directory
- java基础之 异常
- Windows 10 Insider预览版免费升级正式版系统需是主系统
- 英语分词
- 动软代码生成器 常用函数
- params.equals(""),!params.isEmpty(),params!=null的区别
- 网络图片加载的第三方类:EGOImageView的使用方法及注意事项
- hibernate n+1问题
- robin 今日南
- Netty权威指南之Netty入门应用
- 内核驱动调试
- 如何开发Office平台上的扩展应用(又称为Office 2013 App,Office 2013 Add-Ins,Apps for Office,Office 应用)
- LeetCode | Sqrt (x)
- hdu 1690 构图后Floyd 数据很大