题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1443

先把神级代码双手奉上....虽然看不懂吧...囧

 1 #include<stdio.h>
 2
 3 int ans[14]={0};
 4
 5 int joseph(int k)
 6 {
 7     int cnt,p;
 8     if(ans[k])return ans[k];
 9     for(int i=k+1;;i++)
10     {
11         for(cnt=k<<1,p=0;cnt>k;cnt--)
12         {
13             p=(p+i-1)%cnt;
14             if(p<k)cnt=0;
15         }
16         if(cnt==k)
17         {
18             ans[k]=i;
19             return i;
20         }
21     }
22     return 0;
23 }
24
25 int main()
26 {
27     int n;
28     while(scanf("%d",&n),n)
29     {
30         printf("%d\n",joseph(n));
31     }
32     return 0;
33 }

再把神奇代码奉上...打表

1 #include<stdio.h>
2
3 int main(){
4  int n,a[14]={0,2,7,5,30,169,441,1872,7632,1740,93313,459901,1358657,2504881};
5  while(scanf("%d",&n)&&n)
6                    printf("%d\n",a[n]);
7  return 0;
8 }

再说这几个数是怎么来的.....

#include<iostream>
using namespace std;
typedef struct joseph
{
int next;
int pre;
int cur;
}joseph;
int main()
{int k,m,count,total,i,j,rec1,rec2,a[14];joseph p[30];count=0;for(j=1;j<=13;j++){for(m=2;count!=j*2;m++){for(i=0;i<2*j;i++){p[i].cur=i;p[i].next=i+1;p[i].pre=i-1;}p[2*j-1].next=p[0].cur;p[0].pre=p[2*j-1].cur;                                  //将每个人连成环count=0;rec1=0;total=2*j;do{for(i=1;i<=(m-1)%total;i++){rec1=p[rec1].next;}     //一个一个往后移动,直到不能再移动了 rec2=p[rec1].next;p[p[rec1].pre].next=rec2;p[rec2].pre=p[rec1].pre;                    //删除需要出圈者if(p[rec1].cur>=0 && p[rec1].cur<j)  //出圈了好人,跳出该m值的循环
           {break;}else{rec1=rec2;count++;                      //出圈一个坏人计数器加1
           }total--;                                   //出圈一人后总人数记得减一}while(count!=j);if(count==j)                               //出圈好人前出圈完K个坏人,满足条件
       {a[j]=m;break;}}}while(cin>>k && k){cout<<a[k]<<endl;}return 0;
}

这代码竟然没超时T_T.....

转载于:https://www.cnblogs.com/xurenwen/p/3875022.html

hdu 1443 Joseph相关推荐

  1. 杭电OJ分类题目(2)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(2) HDU Water~~~ HDU 100 ...

  2. HDU各种比赛题题解(一)

    HDU各种比赛题题解(一) Gardon-DYGG Contest 1 HDU1178 Heritage from father[水题] - 海岛Blog - CSDN博客 HDU1181 变形课[D ...

  3. HDU题目分类大全【大集合】

    基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.  1032.1037.1040.1048.1056.105 ...

  4. HDU 5643 King's Game 打表

    King's Game 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5643 Description In order to remember hi ...

  5. 转载:Hdu 题目分类

    原址点击 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056. ...

  6. hdu与poj题目分类

    POJ 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(po ...

  7. HDU ACM Steps 攻略

    HDU ACM Steps 攻略- Admin 2011年10月14日 名人名言:未来是光明而美丽的,爱它吧,向它突进,为它工作,迎接它,尽可能地使它成为现实吧!--车尔尼雪夫斯基 总结了一下ACM ...

  8. HDU杭电ACMOJ训练指南

    以下题均为杭电acm网页的题号 首页http://acm.hdu.edu.cn/ 题库入口http://acm.hdu.edu.cn/listproblem.php?vol=1 帮助http://ac ...

  9. hdu HDOJ 题目分类(转)

    动态规划:2037 2054 2084 hdu题目分类(转) http://apps.hi.baidu.com/share/detail/17053154 1001 整数求和 水题 1002 C语言实 ...

最新文章

  1. Windows下部署最新版青龙、诺兰、傻妞入门保姆级教程
  2. 一篇文章全面了解监控知识体系--转
  3. 弹性式分布数据集RDD——Pyspark基础 (二)
  4. java代码中执行sql报错:java.sql.SQLException: ORA-00923: 未找到要求的 FROM 关键字
  5. 插入u盘被计算机限制怎么回事,电脑不读u盘怎么处理,显示本次操作由于计算机的限制而被取消 请您与系统管理员联系,怎门回事?...
  6. 5.这就是搜索引擎:核心技术详解 --- 检索模型与搜索排序
  7. FleaPHP的单入口文件详解
  8. 互补滤波系数_一阶互补滤波
  9. 计算机模拟仿真技术的功能,浅谈虚拟仿真技术
  10. 定时关机win10_Windows利用任务计划程序实现定时关[日常]
  11. oppo计算机锁屏快捷键,电脑如何快速锁屏
  12. latex调行距_LaTeX 的行距机制
  13. 关于Latex中pdf和eps图片的处理
  14. Github 之提交代码
  15. Python——迷宫生成和迷宫破解算法
  16. NR 物理层 卷积 狄拉克函数八讲1-狄拉克函数定义Delta Function
  17. MATLAB帝国(主义)竞争算法求解超市物流配送选址问题实例
  18. 雅可比迭代法——高赛迭代法
  19. 195本免费在线编程书籍
  20. Edit Phone Number~苹果爸爸又又又又又又又又又又又又更新开发者中心的协议了

热门文章

  1. Android 编程下帧动画在 Activity 启动时自动运行的几种方式
  2. 播放生成Android4.0.3中的提示音
  3. 【转】在Asp.net中弹出对话框,然后跳转到其他页面问题
  4. Android编译笔记之五
  5. python3.7怎么设置中文_解决 Bug · Python3.7.3官方文档 简体中文 · 看云
  6. 钉钉宜搭3.0发布!易连接、酷数据、更安全
  7. 实时数仓入门训练营:Hologres性能调优实践
  8. 如何用钉钉宜搭制定企业疫情防控数字化管理方案?
  9. Apache Flink在 bilibili 的多元化探索与实践
  10. 世纪联华的 Serverless 之路