UVa 1394: And Then There Was One
设置一个数组Winner记录经典约瑟夫问题中的剩余者即可递归解决该问题。
注: 约瑟夫问题:有编号为0~n-1的n个人,从0号开始报数1,2,3......报到k的杀死,然后从下一个人开始继续报数1,2,3......直到剩下最后一个人。约瑟夫想要活下来,问他一开始需要站在几号位置(编号为几)。
数组Winner也可以只用一个变量代替。
我的解题代码如下:
#include <iostream>
#include <cstdio>
#include <cstring> using namespace std;
//#define MAXN 10005
//int Winner[MAXN]; //Winner[i]表示约瑟夫问题中初始有i个人(编号0~i-1),最后剩余者的编号
int main()
{
int n,k,m;
while(cin >> n >> k >> m && n!=0)
{
//init
// Winner[1] = 0;
int Winner = 0;
for(int i=2; i<n; i++)
{
// Winner[i] = (Winner[i-1]+k)%i;
Winner = (Winner+k)%i;
}
// cout << (Winner[n-1]+m)%n+1 << endl;
cout << (Winner+m)%n+1 << endl;
}
return 0;
}
UVa 1394: And Then There Was One的更多相关文章
- UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There Was One / POJ 3517 And Then There Was One / Aizu 1275 And Then There Was One (动态规划,思维题)
		
UVA 1394 And Then There Was One / Gym 101415A And Then There Was One / UVAlive 3882 And Then There W ...
 - UVa 1394 约瑟夫问题的变形
		
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
 - 【约瑟夫环变形】UVa 1394 - And Then There Was One
		
首先看到这题脑子里立刻跳出链表..后来继续看如家的分析说,链表法时间复杂度为O(n*k),肯定会TLE,自己才意识到果然自个儿又头脑简单了 T^T. 看如家的分析没怎么看懂,后来发现这篇自己理解起来更 ...
 - 最大边和最小边之差最小的生成树  UVA 1394
		
题目大意:给你n个点的图,求苗条度(最大边减最小编)尽量小的生成树 思路:sort以后暴力枚举区间即可 //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的条件 #inclu ...
 - HDU 1394 Minimum Inversion Number   (  树状数组求逆序数    )
		
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394 Minimum Inversion Number ...
 - uva 1354 Mobile Computing ——yhx
		
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABGcAAANuCAYAAAC7f2QuAAAgAElEQVR4nOy9XUhjWbo3vu72RRgkF5
 - UVA 10564 Paths through the Hourglass[DP 打印]
		
UVA - 10564 Paths through the Hourglass 题意: 要求从第一层走到最下面一层,只能往左下或右下走 问有多少条路径之和刚好等于S? 如果有的话,输出字典序最小的路径 ...
 - UVA 11404 Palindromic Subsequence[DP LCS 打印]
		
UVA - 11404 Palindromic Subsequence 题意:一个字符串,删去0个或多个字符,输出字典序最小且最长的回文字符串 不要求路径区间DP都可以做 然而要字典序最小 倒过来求L ...
 - UVA&&POJ离散概率与数学期望入门练习[4]
		
POJ3869 Headshot 题意:给出左轮手枪的子弹序列,打了一枪没子弹,要使下一枪也没子弹概率最大应该rotate还是shoot 条件概率,|00|/(|00|+|01|)和|0|/n谁大的问 ...
 
随机推荐
- javascript 将递归转化为循环
			
function tco(f) { var value; var active = false; var accumulated = []; return function accumulator() ...
 - mmc加工配套问题
			
题目如下,本题还有其它解.
 - Maxiee的Vim入门日记(4)——安装windows下的Cscope
			
Maxiee今天又学到了一个插件——Cscope.Cscope 是一款用于查看大型工程中的代码的软件.它使用方便,支持快速查找 C Symbol.function 等在工程中所有出现的位置,而不用自己 ...
 - 下拉框Html.DropDownList 和DropDownListFor 的经常用法
			
一.非强类型: Controller: ViewData["AreId"] = from a in rp.GetArea() ...
 - boost 定时器.
			
#include <iostream> #include <boost/asio.hpp> int main() { boost::asio::io_service io; b ...
 - cookie那些事
			
本文面向对cookie有基本了解的读者,小白出门左转 设置cookie (HTTP 响应头) Set-Cookie: {name}={value};path={path};domain={doma ...
 - nodejs报错 events.js:72         throw er; // Unhandled 'error' event
			
var http = require('http'); var handlerRequest = function(req,res){ res.end('hello');}; var webServe ...
 - 基础命名空间:序列化 System.Runtime.Serialization
			
对象通常都有状态(state),从一个对象中抽取这种状态,不论是将它存储于某地,还是通过网络传送,这种抽取动作称为“将一个对象序列化”,而反向处理过程,从一个被序列化的状态重建一个对象即为反序列化. ...
 - Hibernate常见接口说明
			
(一)SessionFactory 1. getCurrentSession()和openSession()区别 getCurrentSession创建的session会和绑定到当前线程,而openS ...
 - 8051、ARM、AVR
			
arm精简指令集.可以安装嵌入式操作系统 8051复杂指令集 avr没落了