B4491 [语言月赛 202602] 数学补习 题解
本题来源为 2026 年 2 月语言月赛,考察了枚举和模拟。
欢迎报名洛谷网校,报名课程可以获得对应组别的知识点讲解与答疑服务,期待和大家一起进步!点击图片即可报名。
:::align{center} :::
由于题目说「要求
for(int i=10;i<=99;i++)
{
for(int j=10;j<=99;j++)
{
int x=i,y=j; // 后续 x,y 的值会改变,因此在这里预先存储,避免干扰到我们外层的枚举
//...
}
}
接下来只需要根据题目所给的过程,依次模拟就可以了,如果最终 ans(初始为零)的值加一即可。
for(int c=0;c<z;c++)
{
if((x+y)%2==1) x-=y%x;
else y-=x%y;
if(x<c) x+=y/2+1;
if(y<c) y+=x/2+1;
}
if(x==p&&y==q) ans++;