1 条题解
-
0
自动搬运
来自洛谷,原作者为

lmrttx
我没有用搬运于
2025-08-24 21:37:41,当前版本为作者最后更新于2020-11-15 16:13:43,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
前:本文对萌新很友好,
因为题目难度较低。我感觉题目难度应该会更高。蒟蒻交了17次,除掉对着现有的唯一的题解打了一遍AC掉,剩下的都是自己写的。思路和目前唯一一篇题解一样。但是,我只有60分。不过我相信,这篇题解一定能帮助别人,自然也会具有一定的学习意义。分割线-------------------------------------------------
正文从这里开始。
看到这种区间问题,可以想到与 % (模运算) 有关。
这是一个突破口。
我们需要枚举周期。题目有写,选手编号小于等于 ,所以,枚举要从2到这个数+1。
cnt=(n+m)*10+1; for(int i=2;i<=cnt;i++)定义数组 为神犇数列, 为蒟蒻(我)数列。我们还可以观察到,这两个数列中的数不连续,分散地分布在数轴上。
所以,我们用这里面的每一个数去模枚举的周期,模完后的值肯定有大有小。我们在 数组中取最大值,在 数组中取最小值。
answer1=0;answer2=INF; for(int j=1;j<=n;j++){ c[j]=a[j]%i; if(c[j]==0)answer1=max(answer1,i); else answer1=max(answer1,c[j]); } for(int j=1;j<=m;j++){ d[j]=b[j]%i; if(d[j]==0)answer2=min(answer2,i); else answer2=min(answer2,d[j]); }用两个 记录好。
可以发现(比方说找规律,打表):最大值与最小值之和一定等于周期。
蒟蒻有一个不严谨的证明,这边不贴了。
还是我太差了。根据这一个结论,就可以写出最后的代码部分了。
我的代码和题解基本一样,因为我是在那篇题解的启发下,才有了思路,理解了题目。
if(!t){ puts("NO");printf("\n"); continue; } sort(q+1,q+t+1,cmp); cout<<q[1].x<<" "<<q[1].y<<endl;60分的完整代码:CODE by lmrttx。
后:蒟蒻最近刚开始写题解,做贡献,涨咕值,自然会有许多不足。我也会虚心改进。我看到记录里许多人直接复制题解,我不认可这种行为,题目必须要有思考。希望这篇题解可以给你们做题的想法,谢谢阅读。
- 1
信息
- ID
- 1809
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者