鱼C论坛

 找回密码
 立即注册
查看: 1416|回复: 1

用二维数组前缀和怎么写

[复制链接]
发表于 2021-12-2 17:23:14 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
C语言二维数组a[M][N], 给定四个整数LX,LY,RX,RY, 定义函数f(LX,LY,RX,RY)求数组若干元素之和:

输入
输入第一行是两个整数M和N, 表示二维数组a的大小, 0<M,N<=300。
随后有M行, 每行有N个整数,是数组a的数组元素值,值位于-1000到1000之间。
第M+2行是一个整数Q,表示有Q个查询
再随后有Q行,每行有四个空格分开的整数LX,LY,RX,RY。其中0<=LX<=RX<M, 0<=LY<=RY<N


60%的数据, M,N<=20, Q<=20
40%的数据, Q=100000

输出
总共输出Q行
对于每一行查询,输出f(LX,LY,RX,RY)的值。

样例输入 Copy
3 2
-1 -2
-3 -4
-5 -6
3
0 0 0 1
1 1 2 1
1 0 2 1
样例输出 Copy
-3
-10
-18
#include <stdio.h>

int main() {
        int m,n;
        scanf("%d %d",&m,&n);
        int a[m][n];
        for(int i=0; i<m; i++)
                for(int j=0; j<n; j++)
                        scanf("%d",&a[i][j]);
        int lx,ly,rx,ry;
        int q;
        scanf("%d",&q);
        for(int i=0;i<q; i++) {
                int s=0;
                scanf("%d %d %d %d",&lx,&ly,&rx,&ry);
                for(int k=lx; k<=rx; k++)
                        for(int j=ly; j<=ry; j++)
                                s+=a[k][j];

                printf("%d\n",s);
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-12-2 20:48:20 | 显示全部楼层
本帖最后由 jhq999 于 2021-12-2 20:53 编辑
#include <stdio.h>
 int sumfuc(int* a,int n,int lx,int ly,int rx,int ry)
 {
         int s=0;
         for (int i = lx; i <=rx; i++)
         {
                 for (int j = ly; j <=ry; j++)
                 {
                         s+=a[i*n+j];//s=*(a+i*n+j);
                 }
         }
         return s;
 }
int main() {
        int m,n;
        scanf("%d %d",&m,&n);
        int *a=new int[m*n];
        for(int i=0; i<m; i++)
                for(int j=0; j<n; j++)
                        scanf("%d",&a[i*n+j]);//scanf("%d",a+i*n+j);
        int lx,ly,rx,ry;
        int q;
        scanf("%d",&q);
        for(int i=0;i<q; i++) {
                int s=0;
                scanf("%d %d %d %d",&lx,&ly,&rx,&ry);
                

                printf("%d\n",sumfuc(a,n,lx,ly,rx,ry));
        }
                delete[] a;
                return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 05:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表