文远知行杯广东工业大学第十六届程序设计竞赛

A-区间最大值
定义 a[i] = n % i,给定L, R,求区间LR中,数组a的最大值。n <= 1e8. 做法: 如果n <= 1e6,可以建st表查询。注意到询问的次数才1e4,可以考虑下整除分块。本地打表分块,输出一个块内所有n % i的值,发现块内的左端点的n % i的值是最大的。 从L开始到R进行整除分块的操作,不断更新最大值就好了。 #include
#define int long long
using namespace std;
const int N = 1e6 + 5, mod = 1e9 + 7;
void solve()
{
int n, m;
cin >> n >> m;
while(m--)
{
int L, R;
scanf("%lld%lld", &L, &R);

文远知行杯广东工业大学第十六届程序设计竞赛最先出现在Python成神之路

版权声明:
作者:cc
链接:https://www.techfm.club/p/27599.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>