acgo题库
  • 首页
  • 题库
  • 题单
  • 竞赛
  • 讨论
  • 排行
  • 团队
  • 备赛专区

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
登录
注册
题目详情题解(0)讨论(0)提交记录(0)
  • 题解

    前缀和板子题。 如果你不会二维前缀和,请自己查阅资料。 直接上代码:

    userId_undefined

    叫我杨同学

    86阅读
    0回复
    0点赞
  • 题解

    #include <iostream> using namespace std; int n,m,q,r,c,x,y,a[1005][1005],s[1005][1005]; int main(){ cin>>n>>m>>q; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++){ cin>>a[i][j]; s[i][j]=a[i][j]+s[i-1][j]+s[i][j-1]-s[i-1][j-1]; } while(q--){ cin>>r>>c>>x>>y; cout<<s[x][y]-s[x][c-1]-s[r-1][y]+s[r-1][c-1]<<endl; } return 0; }

    userId_undefined

    Voldemort

    43阅读
    0回复
    0点赞
  • A335.前缀和2 思路+代码

    思路: 这道题可以通过前缀和来做。 重点:二维数组的前缀和要用一维数组记录 前缀和数组rc第i行第j列的下标是rc[(i-1)×m+j] 代码:

    userId_undefined

    ༺ཌༀ小柴-贪醟 人机领袖ༀད༻

    空间掌握者时空双修者时间刺客秩序白银
    13阅读
    0回复
    0点赞
  • 666

    userId_undefined

    耐高总冠军 张文杰

    12阅读
    0回复
    0点赞
  • 比较水

    #include<bits/stdc++.h> using namespace std; int n,m,q,s[1001][1001],a,b,x,y; int main(){ cin>>n>>m>>q; for(int i=1;i<=n;++i) for(int j=1;j<=m;++j){ scanf("%d ",&s[i][j]); } for(int i=1;i<=n;++i) for(int j=1;j<m;++j) s[i][j+1]+=s[i][j]; for(int j=1;j<=m;++j) for(int i=1;i<n;++i) s[i+1][j]+=s[i][j]; while(q--){ scanf("%d %d %d %d",&a,&b,&x,&y); printf("%d\n",s[x][y]-s[a-1][y]-s[x][b-1]+s[a-1][b-1]); } return 0; }

    userId_undefined

    Xylophone

    CSP-J一等奖荣耀黄金
    3阅读
    0回复
    0点赞
首页