约瑟夫环问题

基本介绍

约瑟夫环问题都很熟悉了,这里也就不多赘述了。

主要是来记录一下,约瑟夫环的一些解法。

实现方式

这里我就不详细写推理的过程了。。(其实我也不会。。

网上应该一搜一大片。

1、迭代

1
2
3
4
5
6
7
8
9
int cir(int n,int m)
{
int p=0;
for(int i=2;i<=n;i++)
{
p=(p+m)%i;
}
return p+1;
}

2、公式

我不知道这个公式是哪个鬼才想出来的。。

我在网上都没有找到。

1
2
3
4
5
6
7
int S(int n)
{
if(n==1)
return 1;
else if(n&1) return S((n-1)/2)*2+1;
else return S(n/2)*2-1;
}

用这个可以过掉1e9的题。。

上面那个会TLE。

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • © 2015-2021 sakurakarma
  • Powered by Hexo Theme Ayer
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信