题目链接:http://poj.org/problem?id=1012

题目大意:

  约瑟夫环的一个扩展,2*k个人围一圈,前k个是好人,后k个是坏人。报到m的人就要死掉,然后重新开始报数。要求的是最小的m使得后k个人总是先死掉!

题目分析:

  这道题真心很头疼的啊!约瑟夫环的问题就是很难解,而且比较难理解的啊。。

  做法很简单,就是按照原先做约瑟夫环的方法,从k+1开始枚举m,找到最小的m。

  公式是:t=(t+m-1)%(sum--);sum为当前的总人数。把所有人从0开始编号到2*k-1,这样每一次死掉的人就是第t个人(去掉上一轮出局的,从原本的那个0开始重新编号后的t号会死掉!),只要保证前k个t里面不出现小于k的数就可以了。

  在本机上打个表再提交就可以保证不超时了。

 #include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int f[]={,,,,,,,,,,,,,};
int k;
int t;
bool ok(int m)
{
t=;
int sum=*k;
for(int i=;i<=k;i++)
{
t=(t+m-)%sum;
sum--;
if(t<k)
{
return ;
}
}
return ;
}
int main()
{
//freopen("text.out","w",stdout);
// for(k=1;k<14;k++)
//{
// int m=k+1;
// while(ok(m++)==0)
// {}
// cout<<m-1<<",";
// }
while(scanf("%d",&k)!=EOF && k)
{
cout<<f[k]<<endl;
}
return ;
}

POJ1012

POJ1012-Joseph数学的更多相关文章

  1. poj1012.Joseph(数学推论)

    Joseph Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 493  Solved: 311 Description The Joseph's prob ...

  2. [POJ1012]Joseph

      Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 50596   Accepted: 19239 Description T ...

  3. HDU题解索引

    HDU 1000 A + B Problem  I/O HDU 1001 Sum Problem  数学 HDU 1002 A + B Problem II  高精度加法 HDU 1003 Maxsu ...

  4. 【poj1012】 Joseph

    http://poj.org/problem?id=1012 (题目链接) 半年前的考试题..任然清晰的记得那次差10分就AK... 题意 约瑟夫环,有前k个好人,后k个坏人,要求使得后k个坏人先死的 ...

  5. UVA1363 - Joseph's Problem(数学,迷之优化)

    题意:给出n和k,1≤n,k≤1e9,计算 切入点是k/i 和 k/(i+1)差距不大.令pi = k/i, ri = k%i.如果pi+1 == pi,那么ri+1 == k - pi(i+1) = ...

  6. 傅里叶变换:MP3、JPEG和Siri背后的数学

    九年前,当我还坐在学校的物理数学课的课堂里时,我的老师为我们讲授了一种新方法,给我留下了深刻映像.我认为,毫不夸张地说,这是对数学理论发现最广泛的应用.应用的领域包括:量子物理.射电天文学.MP3和J ...

  7. Mathematics for Computer Graphics数学在计算机图形学中的应用 [转]

    最近严重感觉到数学知识的不足! http://bbs.gameres.com/showthread.asp?threadid=10509 [译]Mathematics for Computer Gra ...

  8. UVA 305 Joseph (约瑟夫环 打表)

     Joseph  The Joseph's problem is notoriously known. For those who are not familiar with the original ...

  9. 华为机试 之 joseph环

    一:首先科普一下约瑟夫问题的数学方法 (1)  不管是用list实现还是用vector实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比較烦,并且时间复杂度高达O(nm),当n,m很大(比如上百 ...

  10. PDF分享:国外优秀数学教材选评

    <国外优秀数学教材选评>推荐书目下载 具体内容请查看原内容: http://www.library.fudan.edu.cn/wjzx/list/373-1-20.htm 或者http:/ ...

随机推荐

  1. React文档翻译系列(三)JSX简介

    # React文档翻译系列(三)JSX简介 先来看一下下面的变量声明: ``` const element = Hello world! ``` 这种有趣的标签语法既不是字符串也不是HTML. 这种形 ...

  2. C语言使用clock进行计时

    #include "stdio.h" #include "stdlib.h" #include "time.h" int main( voi ...

  3. cat: can't open '/lib/modules/2.6.35.3-571-gcca29a0/modules.dep': No such file or directory

    在使用modprobe 或者modinfo  cat: can't open '/lib/modules/2.6.35.3-571-gcca29a0/modules.dep': No such fil ...

  4. ajax VS websocket

    一. ajax VS websocket总结 http://blog.csdn.net/qiuhuanmin/article/details/50719114 二.用Websocket代替Ajax来开 ...

  5. SystemClock官方简介

    public final class SystemClock extends Object java.lang.Object    ↳ android.os.SystemClock Class Ove ...

  6. hive 锁表问题

    报错如下: Unable to acquire IMPLICIT, EXCLUSIVE lock dms@pc_user_msg@month=201611 after 100 attempts. 显示 ...

  7. C#设计模式:责任链模式

    设计模式是面向对象编程的基础,是用于指导程序设计.在实际项目开发过程中,并不是一味将设计模式进行套用,也不是功能设计时大量引入设计模式.应该根据具体需求和要求应用适合的设计模式.设计模式是一个老话题了 ...

  8. ASP.NET自定义处理程序

    要创建自定义处理程序,可以创建一个实现IHttpHandler接口的类. 该类有两个重要的参数:IsResuable属性和ProcessRequest方法.如果处理程序实例可以在不同的请求中重用,Is ...

  9. ubuntu 14.04 64位安装HTK3.5

    1.http://htk.eng.cam.ac.uk/download.shtml 官网下载HTK source code以及HDecode 2.分别解压HTK-3.5.beta-2.tar.gz.H ...

  10. 学习vue 20天,我写了点东西

    往昔 最初团队里使用Angularjs进行开发,刚开始还好,到了项目后期越发感觉Angularjs太重了,以至于后来重构项目时,毅然放弃Angularjs,投入了Vue的怀抱.除了组建团队时,是我搭建 ...