北航的一个ACM题目----约瑟夫,求快速的解法!!!

oyzdz1988 2009-08-13 09:22:02
约瑟夫
时间限制:1000 ms 内存限制:65536 KB

描述
我们都知道joseph问题,n个人围成一圈以m报数,报m的人被杀死,余下来的人接着从1报数,直到剩最后一人。

现在我们已知有k个好人,k个坏人,(1<=k<=14)围成一圈报数,前k个为好人,后k个为坏人,求最小的m使得所有的坏人先被杀死(保证不死一个好人的情况)



输入
多组测试数据,以0结束

输出
每组数据对应一个输出结果,每个结果一行

样例输入
3
4
0

样例输出
5
30


我老是超时,最后是一个个的求出来,建了个表AC的,前13个很快,但k=14时,花时间较多~
请问这个题目有直接解出的算法吗?
...全文
354 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangzheqin 2010-01-07
  • 打赏
  • 举报
回复
参考Concrete mathematics第一章的习题。
绿色夹克衫 2009-11-25
  • 打赏
  • 举报
回复
不好意思,我也把问题想简单了,虽然可以通过模方程来求解,但符合条件的模方程的数量也不少呢,
也是指数级的。

如果只是任意求1个解的话,可以通过GCD,求出k+1,k+2....2*k的最小公倍数,这就是一个合格的解。
但最小解似乎没有太多的规律。

不过这个最小解M mod (K + 1) 一定等于0或1,在枚举m的时候,可以从这个条件开始构造,提高一些效率。

M mod (k+1) + M mod (k+2) + ..... M mod 2k = 0;(当余数 > 除数的一半时,取负值)
绿色夹克衫 2009-11-24
  • 打赏
  • 举报
回复
用模逆应该可以求,LZ看看中国剩余定理吧!
bigc2000 2009-08-13
  • 打赏
  • 举报
回复
错了,我说错了,
不好意思,这个是ACM题,sorry,很难的,而且可能不存在这样的M,N
bigc2000 2009-08-13
  • 打赏
  • 举报
回复
链表,O(n),时间足够
oyzdz1988 2009-08-13
  • 打赏
  • 举报
回复
不是那个公式能解决的~

[Quote=引用 2 楼 joanlynnlove 的回复:]
Google。
两个关键字:约瑟夫环  公式
Ok。
[/Quote]
acdbxzyw 2009-08-13
  • 打赏
  • 举报
回复
Google。
两个关键字:约瑟夫环 公式
Ok。
jhkwei 2009-08-13
  • 打赏
  • 举报
回复
你去看看,具体数学,上面专门有讲
内容概要:本文围绕基于CNN-BiLSTM-Attention混合神经网络模型的电力负荷预测展开研究,提出一种结合卷积神经网络(CNN)、双向长短期记忆网络(BiLSTM)与注意力机制(Attention)的深度学习框架,并通过Python代码实现高精度的短期与超短期负荷预测。该模型充分利用CNN对局部特征的提取能力,捕捉负荷数据中的周期性与趋势性模式;借助BiLSTM对时间序列前后向依赖关系的建模能力,增强对动态变化的感知;并通过Attention机制自适应地聚焦关键历史时刻,提升预测准确性。文中详细阐述了数据预处理、模型结构设计、训练流程及超参数调优方法,并在真实负荷数据集上进行了实验验证,结果表明该混合模型相比传统单一模型和其他基准模型具有更优的预测性能,尤其在应对非线性、非平稳负荷波动方面表现突出。; 适合人群:具备一定Python编程能力和机器学习基础,从事电力系统分析、能源管理、智能电网或时序预测相关工作的科研人员、工程师及高校研究生。; 使用场景及目标:①应用于电网调度、电力市场出清、需响应管理等场景下的精细化负荷预测;②为研究人员提供一套完整的、可复现的深度学习负荷预测代码框架,推动AI技术在能源领域的落地应用;③帮助理解CNN、BiLSTM与Attention模块之间的协同机制及其在时序建模中的集成方式。; 阅读建议:建议读者结合所提供的Python代码进行动手实践,重点掌握数据归一化、滑动窗口构造、模型搭建与训练技巧,并尝试在不同地区、不同季节的负荷数据上进行迁移测试,以深入理解模型泛化能力与调参策略。

33,025

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧