【题解】洛谷 AT4810 [ABC133C] Remainder Minimization 2019
思路
直接暴力枚举。
有两点要注意:
-
如果当前求得的最小值为0,直接输出并退出程序;
我第一遍就是这么TLE的。 -
数据范围是 \(2 \times {10^9}\), 再一乘必然会爆 \(\texttt{int}\),所以要开 \(\texttt{long long}\)。
上代码
#include<cstdio>
#include<iostream>
#include<algorithm>
#define ll long long
using namespace std;
ll l,r;
ll ans=2020;//ans的初始值只要小于 mod2019 也就是2018 就可以
int main()
{
scanf("%lld%lld",&l,&r);
for(ll i=l;i<=r;i++)
{
for(ll j=i+1;j<=r;j++)
{
ans=min(ans,(i*j)%2019);
if(ans==0)//如果为0直接输出并退出程序,否则会超时
{
printf("0\n");
return 0;
}
}
}
printf("%lld\n",ans);
return 0;
}
岛国的题一定要行末换行