| 
 | 
 
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册  
 
x
 
 本帖最后由 牵风 于 2021-12-2 17:19 编辑  
 
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); 
        } 
}
表示我的代码不是最优,40% 数据采用 Q = 100000 肯定超时了,时间复杂度:大于 O(n^2)  
 
 
 |   
 
 
 
 |