题意:n个人围成一个圈 从中选择连续的m个人 求他们的最大和
思路:直接暴力枚举 注意取模
if(j>n) temp%=n;
#include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #include<queue> #include<stack> #define mem(a,b) memset(a,b,sizeof(a)) #define ll __int64 #define MAXN 1000 #define INF 0x7ffffff #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 using namespace std; int a[300]; int main() { int t,n,m; int i,j; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(i=1;i<=n;i++) scanf("%d",&a[i]); int maxx=0; for(i=1;i<=n;i++) { int sum=0; for(j=i;j<=m+i-1;j++) { int temp=j; if(j>n) temp%=n; sum+=a[temp]; } if(maxx<sum) maxx=sum; } printf("%d ",maxx); } return 0; }