小猴编程C++ | 小猴的棋局

小猴编程C++ | 小猴的棋局学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!

大家好,欢迎来到IT知识分享网。

学习C++从娃娃抓起!记录下在学而思小猴编程学习过程中的题目,记录每一个瞬间。侵权即删,谢谢支持!

附上汇总贴:小猴编程C++ | 汇总-CSDN博客


【题目描述】

小猴和朋友正在玩一个游戏,初始时,在一个 n×m 的棋盘上放置着 n×m 个棋子,每枚棋子都有一定的价值,第 i(1≤in) 行第 j(1≤jm) 列的棋子的价值为 vi,j

该游戏的规则为:在棋盘中任意选取两个正方形区域(第 k(1≤k≤2) 个正方形的左上角格子在第 xk 行第 yk 列,边长为 lenk),要求双方玩家使用最短的时间计算出这两个正方形区域中的总价值,谁先计算出正确结果,本局游戏就是谁获胜。

现在小猴想要知道,在他制定的规则下,游戏一共进行 q 局,每局游戏的正确结果是多少,以便于用来核对双方玩家计算出的结果是否正确。

【输入】

第一行,包含两个整数 n,m

接下来 n 行,每行包含 m 个整数 vi,1,vi,2,…,vi,m

接下来一行,包含一个整数 q

接下来 q 行,每行包含 6 个整数 x1,y1,len1,x2,y2,len2。

【输出】

t 行,每行一个整数,表示答案。

【输入样例】

2 2
1 2
3 4
3
1 1 1 2 2 1
1 2 1 2 1 1
2 1 1 2 2 1

【输出样例】

5
5
7

【代码详解】

小猴编程C++ | 小猴的棋局

小猴编程C++ | 小猴的棋局

#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N = 810, M = 810;int n, m, q;LL s[N][M];int main(){    cin >> n >> m;    for (int i=1; i<=n; i++) {        for (int j=1; j<=m; j++) {            cin >> s[i][j];            s[i][j] += s[i][j-1];        }    }    cin >> q;    while (q--)    {        int x1, y1, len1, x2, y2, len2;        cin >> x1 >> y1 >> len1 >> x2 >> y2 >> len2;        int x3 = x1 + len1 - 1, y3 = y1 + len1 - 1;        int x4 = x2 + len2 - 1, y4 = y2 + len2 - 1;        LL res = 0;        for (int i=x1; i<=x3; i++) {            res += s[i][y3] - s[i][y1-1];        }        for (int i=x2; i<=x4; i++) {            res += s[i][y4] - s[i][y2-1];        }        if (!(x3<x2 || x4<x1 || y3<y2 || y4<y1)) {            int x[] = {x1, x2, x3, x4};            int y[] = {y1, y2, y3, y4};            sort(x, x+4);            sort(y, y+4);            for (int i=x[1]; i<=x[2]; i++) {                res -= s[i][y[2]] - s[i][y[1]-1];            }        }        cout << res << endl;    }    return 0;}

【运行结果】

3 4
1 2 3 4
-1 -2 -3 -4
6 7 -6 -7
3
1 1 2 2 3 2
-20
1 1 3 2 2 1
7
1 1 2 2 2 2
-2

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/57827.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信