HDU1443 Joseph
来源:互联网 发布:西门子300编程演示 编辑:程序博客网 时间:2024/06/14 17:32
【题意】k个好人和k个坏人围成一圈,好人编号1~k,给定m,从1开始数第m个人被杀,然后从被杀的那个人的下一个人开始计数,如此循环,求使所有坏人被杀前没有一个好人被杀的最小的m。
枚举+直接模拟
#include<stdio.h>#include<string.h>//int ret[16]={0,2,7,5,30,169,441,1872,7632,1740,93313,459901,1358657,2504881,13482720,25779600};int a[16]={0};/*int Find(int k){for(int i=k+1;;i++){//printf("%d\n",i);int now=1,last=2*k;while(1){now=(now+i-1)%last;if(now==0)now=last;if(now<=k)break;if(now==last)now=1;last--;if(last==k)return i;}}}*/int Find(int k){for(int roll=k+1;;roll++){int now,last;for(last=2*k-1,now=(roll-1)%(last+1);;now=(now+roll-1)%(last+1)){if(now<k)break;if(last==now)now=0;last--;if(last==k-1)return roll;}}}int main(){int k;for(int i=1;i<=14;i++)a[i]=Find(i);while(scanf("%d",&k),k){printf("%d\n",a[k]);}return 0;}
一开始超时,后来将Find(i)的结果保存在a[i]就AC了~跑343MS
当然也可以打表
- HDU1443 Joseph
- hdu1443 Joseph
- HDU1443-Joseph
- HDU1443 && POJ1012:Joseph
- 【模拟】【HDU1443】 Joseph
- Hdu1443(Joseph)巧妙的提交
- UVALive5520 UVA305 POJ1012 HDU1443 Joseph【数学计算+打表】
- hdu1443
- hdu1443
- hdu1443
- hdu1443
- HDU1443
- Joseph
- joseph
- joseph
- Joseph
- Joseph
- Joseph
- 广度优先搜索算法
- hdu 1047 Integer Inquiry
- SPWorkflow 系列:工作流表单 Infopath 2010 与SPWF 数据传递
- 分离路径
- QThread使用整理3-使用方法
- HDU1443 Joseph
- USB装系统、装LINUX、装Ubuntu10.10全攻略!!
- Android原始应用与jquery mobile集成:案例分享
- poj 3080 Blue Jeans(KMP+字典序输出)
- 妈妈考上了哈工大的计算机科学与技术研究生--特等奖学金
- AppSettings是ASP.NET1.1时期用的,在.NET Framework 2.0中,新增了ConnectionStrings.
- QThread使用整理4-总结
- 猜猜世界名牌的官方应用能干点啥
- ini保存数据