Loading

加载过慢可尝试刷新

【题解】洛谷 AT4810 [ABC133C] Remainder Minimization 2019

思路

直接暴力枚举。

有两点要注意:

  1. 如果当前求得的最小值为0,直接输出并退出程序;我第一遍就是这么TLE的。

  2. 数据范围是 \(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;
}

岛国的题一定要行末换行

posted @ 2022-02-04 17:32  Makerlife  阅读(32)  评论(0)    收藏  举报