求比赛备用题正解
  • 板块学术版
  • 楼主what_can_I_do
  • 当前回复6
  • 已保存回复6
  • 发布时间2022/10/4 19:04
  • 上次更新2023/10/27 08:49:17
查看原帖
求比赛备用题正解
658973
what_can_I_do楼主2022/10/4 19:04

只有20分。
我用前缀和做的,求正解。

#include<bits/stdc++.h>
using namespace std;
long long a[2900][5000]={0},v[2900][5000]={0},l,r,n,k,m,maxx=-1;
inline long long read()
{
	long long x=0,y=1;char c=getchar();
	while(c<'0'||c>'9') {if(c=='-') y=-1;c=getchar();}
	while(c>='0'&&c<='9') x=x*10+(c-'0'),c=getchar();
	return x*y;
}
int main()
{
	n=read(),k=read(),m=read();
	for(register long long i=1;i<=k;i++) for(register long long j=1;j<=n;j++) a[i][j]=read(),v[i][j]=v[i][j-1]+a[i][j];
	for(register long long i=1;i<=m;i++)
	{
		l=read(),r=read();
		for(register long long j=1;j<=k;j++) maxx=max(maxx,v[j][r]-v[j][l-1]);
		printf("%lld\n",maxx);maxx=-1;
	}
	return 0;
}
```cpp
2022/10/4 19:04
加载中...