问题是这样的:一共有2n个人,其中有n个好人,n个坏人。好人的编号是1~n,坏人的编号是n+1~2n。要求你求出最小的m(报数到m的人出局),让前n个出局的人都是坏人。


  似乎除了暴力,我们想不出其它的什么办法来。而这题的数据范围......n<14!!!!!!!那就直接暴力好了(滑稽)

for(int i=;i<=n;i++){
ans[i]=(ans[i-]+m-)%(*n-i+);
if(ans[i]<n) i=,m++;
}
printf(",%d",m);

  鬼知道它的复杂度是多少......不过就算是O(N3)也是可以过的,这题就给我们水过去了。

  不过,这是正解吗?你看这个范围只有14,题目的变量也只有一个,这不是大喊着让我们打表过吗?所以为了rank,我打了个表......

#include<stdio.h>
#include<string.h>
int main(){
//freopen("poj1012 约瑟夫问题2.txt","w",stdout);
puts("#include<iostream>");
puts("using namespace std;");
printf("int ans[15]={0,2");
int ans[];
for(int n=;n<;n++){
int m=;
memset(ans,,sizeof ans);
for(int i=;i<=n;i++){
ans[i]=(ans[i-]+m-)%(*n-i+);
if(ans[i]<n) i=,m++;
}
printf(",%d",m);
}
printf("};\n");
puts("int main(){");
puts(" int n;");
puts(" cin>>n;");
puts(" cout<<ans[n];");
puts(" return 0;");
puts("}");
return ;
}

  而且是那种直接交输出文件的打表程序(滑稽)

OI养老专题03:让坏人出列的约瑟夫问题的更多相关文章

  1. OI养老专题01:约瑟夫问题

    有M个人,其编号分别为1-M.这M个人按顺序排成一个圈.现在给定一个数N,从第一个人开始依次报数,数到N的人出列,然后又从下一个人开始又从1开始依次报数,数到N的人又出列...如此循环,直到最后一个人 ...

  2. OI养老专题02:约瑟夫问题求幸存者

    如题.人数为n(1<=n<=30000),共k(1<=k<=30000)组数据,所报的数m恒为2,只要求输出幸存者. 如果你还不知道什么是约瑟夫问题...——https://w ...

  3. 打破传统天价SAP培训,开创SAP师徒之路,经验丰富的老顾问带徒弟 qq群150104068

    SAP领航社区,开设了一个导师性质的师徒圈子,类似大学导师带研究生,导师给学生安排课题.分配任务.分享资料,让学生自学提高.我们的教学方法是以自学为主.辅导为辅助,在实践中积累经验掌握原理.主要方向A ...

  4. hdu1443(约瑟夫环游戏的原理 用链表过的)

    Problem Description The Joseph's problem is notoriously known. For those who are not familiar with t ...

  5. joseph-约瑟夫环问题

    约瑟夫环运作如下: 1.一群人围在一起坐成环状(如:N) 2.从某个编号开始报数(如:K) 3.数到某个数(如:M)的时候,此人出列,下一个人重新报数 4.一直循环,直到所有人出列,约瑟夫环结束 关于 ...

  6. 用ArrayList(解决约瑟夫问题)

    约瑟夫问题(Josephus problem)又称为约瑟夫斯置换,是一个出现在计算机科学和数学中的问题.在计算机编程的算法中,约瑟夫问题类似问题又称为约瑟夫环."丢手绢问题". 据 ...

  7. Josephus problem(约瑟夫问题,丢手绢问题)

    约瑟夫问题 约瑟夫环问题是一个数学应用题:已知n个人(以编号1,2,3.....,n)围坐在一张圆桌的周围.从编号为k的人开始报数,数到m的那个人出列:他的下一个人又从1开始报数,数到m的那个人又出列 ...

  8. 正睿OI国庆DAY2:图论专题

    正睿OI国庆DAY2:图论专题 dfs/例题 判断无向图之间是否存在至少三条点不相交的简单路径 一个想法是最大流(后来说可以做,但是是多项式时间做法 旁边GavinZheng神仙在谈最小生成树 陈主力 ...

  9. ACM&OI 基础数论算法专题

    ACM&OI 基础数学算法专题 一.数论基础 质数及其判法 (已完结) 质数的两种筛法 (已完结) 算数基本定理与质因数分解 (已完结) 约数与整除 (已完结) 整除分块 (已完结) 最大公约 ...

随机推荐

  1. WIN10在安装mysql时,出现“The security settings could not be applied to the database because the connection has failed with the following error. Error Nr. 1045

    解决方法:1, 首先卸载MySQL2, 再根据这个目录 C:\ProgramData,将MySQL删除.3, 重新安装MySQL 就好了(电脑不用重启)

  2. 配置ubuntu的超管账号密码

    1 在搭建ubuntu 之后 只有自己的账号 2 root 用户是没有配置好的 需要重新配置 3 passwd root 4 输入新密码即可

  3. 理解ActivityManagerService

    --摘自<Android进阶解密> *AMS家族* 1.Android 7.0的AMS家族 2.AMP和AMS进行通信 3.(Android 7.0)AMP是AMN的内部类,它们都实现了I ...

  4. Android-Layer list

    Android-Layer list 学习自: KEEGAN小钢 原文链接 : (https://keeganlee.me/post/android/20150909) 使用layer-list 可以 ...

  5. C语言编译器CL.exe

    下载地址CL.7z版权问题:仅供学习交流,请于24小时内删除,本人不承担版权问题… 基本使用: 1.解压缩,例如解压缩到E盘根目录下 2.打开cmd命令行界面(快捷方式win+R输入cmd回车)cd命 ...

  6. 英语口语练习系列-C36-城市-谈论活动-登高

    词汇-城市 city your favorite city a place you would like to visit metropolis capital landscape enchantin ...

  7. XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Siberia

    1. GUI 按题意判断即可. #include<stdio.h> #include<iostream> #include<string.h> #include&l ...

  8. Lesnoe Ozero 2016. BSUIR Open 2016 Finals

    A. Street magic 数位DP,设$f[i][j][k]$表示从低到高考虑$x$的后$i$位,$x$和$m$大小关系为$j$,和$n$大小关系为$k$的方案数. #include<cs ...

  9. linux学习:sed与awk与tr用法整理

    流编辑器:sed 语法:sed [-hnV][-e<script>][-f<script文件>][文本文件] 参数: -e<script>或--expression ...

  10. 图片上传 new FormData() ,new FileReader()

    多图片和单图片取决于 multiple属性,下面来介绍下 new FileReader() reader.readAsDataUrl(file[0]) 可以看到文件是Base64的, let fd = ...