三个点超时,求大佬指导

P1145 约瑟夫

啊啊啊啊 # 人生建议:用stack
by leo888 @ 2021-09-16 21:37:20


不用那么麻烦吧?
by sunxiaoli @ 2021-09-16 21:44:37


复杂度好像假了
by Nickle @ 2021-09-16 22:08:49


也许需要考虑优化一下?
by Nickle @ 2021-09-16 22:09:28


由枚举编号到枚举s 人数量。 考虑用数学方法计算每一个被 s 的人的位置。 如果这个位置<k显然不行 如果可以就继续。 那么如果成功 s 了k个坏人,就输出。
by Nickle @ 2021-09-16 22:13:12


手糊的代码没调试 ```cpp bool dfs(int ans){ int s=0; for(int i=1;i<=k;i++){ s=(s+ans-1)%(2*k-i); if(s<k) return 0; if(i==k) return 1; } } ``` 然后考虑到答案一定是大于 k 的,从k+1开始检查
by Nickle @ 2021-09-16 22:17:16


|