上海计算机学会2025年2月月赛C++丙组T5子矩阵和

子矩阵和

内存限制: 512 Mb时间限制: 1000 ms

题目描述

Dave 在研究一种数字矩阵时遇到了一个挑战。

给定一个由数字 0∼9 构成的字符串 S,其长度为 n。他可以据此构造一个 n×n 的矩阵,其中位于第 i 行第 j 列的元素值等于 S 中第 i 个字符与第 j 个字符所对应数字的乘积。例如,若 S 的第 3 位是 5,第 7 位是 2,则矩阵中 (3,7) 位置(第三行第七列)的元素为 5×2=10。

现在,给定一个整数 T,Dave 想知道这个矩阵中有多少个不同的子矩阵,其内部所有元素之和恰好等于 T。

这里的子矩阵定义为由任意连续行和列围成的矩形区域(包括仅含单个元素的矩形)。请你帮助他解决这个问题。

输入格式

第一行一个整数 T。

第二行一个字符串 S。

输出格式

一行一个整数表示答案。

数据范围

对于 30% 的数据,∣S∣≤50。

对于 50% 的数据,∣S∣≤500。

对于 100% 的数据,0≤T≤109,∣S∣≤4000。

样例数据

 输入:
5
123
输出:
2
说明:
A矩阵为:
1 2 3
2 4 6
3 6 9
符合题意的子矩阵为 [(2,1),(3,1)] 与 [(1,2),(1,3)](用矩阵的左上角和右下角坐标表示矩阵)。

解析:

分析可知,子矩阵和,为行的区间和乘以列的区间和,则可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

长春高老师信奥工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值