鱼C论坛

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

这道题怎么做?

[复制链接]
匿名鱼油
匿名鱼油  发表于 2022-2-4 20:14:40 |阅读模式

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

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

x
时间限制: 1000 ms 空间限制: 128 MB

题目描述
给定一个N×N的矩阵,需要你求出矩阵中某个直角三角形区域中所有元素的和。

这个直角三角形区域的直角边与 矩阵的边平行,且直角对应矩阵的左下角。

我们规定矩阵的第一个元素下标为(1,1)。

三角形区域边界上的点我们也需要包含在内。

输入格式
第一行包含一个整数N。

接下来N行每行输入N个数,表示N×N的二维矩阵。

最后输入四个整数 x、y、a、b表示点A与点B的坐标。

输出格式
输出一个整数,表示三角形区域中元素的和。

数据范围
1 ≤ N ≤ 100

所有数据(包括答案)均不超过int类型的数据范围。

输入样例1
3
1 2 3
4 5 6
7 8 9
2 2 3 3
输出样例1
22
输入样例2
5
1 2 3 4 5      
6 7 8 9 10     
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
2 1 4 5
输出样例2
132
输入样例3
3
1 2 3
4 5 6
7 8 9
1 2 3 3
输出样例3
24
在样例2中求和的元素分别是:

6
11 12 13
16 17 18 19 20
在样例3中,求和的元素分别是:

2
5
8 9
回复

使用道具 举报

发表于 2022-2-5 08:59:52 | 显示全部楼层
本帖最后由 jhq999 于 2022-2-5 09:11 编辑
int main()
{
        int s[5][5]={0},i=0,j=0,x=2,y=1,a=4,b=5,sum=0;
        for(i=0;i<25;i++)scanf("%d",&((int*)(*s))[i]);//输入矩阵
        for (i = 0; i <=a-x; i++)
        {
                for (j = 0; j <= (i*(b-y))/(a-x); j++)//斜率公式k=(y1-y2)/(x1-x2)
                {
                
                        sum+=s[i+x-1][j];//x是沿x轴平移的距离,减一是因为(1,1)为矩阵起点
                }
        }
        printf("%d",sum);
    return 0;
}
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
132
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 14:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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