经典题目和算法
创始人
2025-05-30 07:12:56
0

常见的解题算法

求矩阵中子矩阵元素和不大于K的个数

前缀和+双指针O(n^3)
思路:

1)枚举子矩阵的 左边界i 和 右边界j,
2)用快指针t枚举子矩阵的下边界,慢指针s维护子矩阵的上边界 (s≤t)
3)如果得到的子矩阵的权值和大于 k,则慢指针s 前进,而子矩阵和必将单调不增,慢指针s 继续前进(如图),直到子矩阵的和不大于k,慢指针没必要前进了,因为该子矩阵的所有宽度为 j - i + 1的子矩阵(总共 t - s + 1种)一定满足要求,更新该情况对答案的贡献 t - s + 1;反之,如果慢指针s越界(s > t),则不操作,直接进入下层循环
在这里插入图片描述

#include
using namespace std;typedef long long ll;
const int N = 5e2+3;
int n, m, k;
int a[N][N]`
int main(){ios::sync_with_stdio(false);cin >> n >> m >> k;for(int i=1; i<=n; i++){for(int j=1; j<=m; j++){cin >> a[i][j];a[i][j] += a[i - 1][j] + a[i][j - 1] - a[i - 1][j - 1];}}ll ans = 0;for(int i=1; i<=m; i++){for(int j=i; j<=m; j++){for(int s = 1, t = 1; t <= n; t ++ ){while(s <= t && a[t][j] - a[s - 1][j] - a[t][i - 1] + a[s - 1][i - 1] > k) s ++ ;if(s <= t) ans += t - s + 1;}}}cout << ans << '\n';
}

求字符串中某条件子串的个数

前缀和+哈希

在这里插入图片描述

思路:

1.求条件子串的个数,也就是求字符串的前缀和中满足条件子串的个数。 因为任意两个符合条件的·前缀和子串相减就是题目要求的子串。
2. 每种前缀和状态下的个数用哈希来维护,即undered_map
3. 需要构造一些结果,使出现0,1,2三种字符能得到不同但是互补的结果。

#include
using namespace std;
#define INF 0x3f3f3f3f
#define pb(x) push_back(x)
#define eb(x) emplace_back(x)
#define PII pair
#define endl '\n'
#define fi first
#define se second
#define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)typedef long long LL;const int maxn=4e5+10;
const int N=1e6+10;
const int mod=1e9+7;void solve(){int n; cin>>n;string s; cin>>s;LL ans=0;mapmp;PII v=make_pair(0,0);mp[v]=1;		//初始化,最开始三个数都为0的前缀和状态有1个 //接下来遍历前缀和的0,1,2个数for(int i=0;iif(s[i]=='0') v.fi++, v.se++;else if(s[i]=='1') v.fi--;else v.se--;ans+=mp[v];mp[v]++;}cout<IOS;int t; cin>>t;while(t--){solve();}return 0;
}

相关内容

热门资讯

经典朋友圈早安文案 经典朋友圈早安文案汇总(精选140句)  每一个人只要心里有山巅,即使道路再曲折,也能够到达人生的顶...
调侃男友俏皮句子 调侃男友俏皮句子 (精选85句)  在日常的学习、工作、生活中,大家总免不了要接触或使用句子吧,根据...
打动人心的正能量句子 打动人心的正能量句子  在日常学习、工作或生活中,大家最不陌生的就是句子了吧,根据结构的不同句子可以...
哀悼逝者的句子 哀悼逝者的句子(精选140句)  在平时的学习、工作或生活中,大家一定都接触过一些使用较为普遍的句子...
最新美到极致的惊蛰节气句子 最新美到极致的惊蛰节气句子(精选110句)  在日常学习、工作或生活中,大家都接触过很多优秀的句子吧...
曾经爱情的句子有哪些 关于曾经爱情的句子有哪些  1、曾经,在那个花季的年代,你突然出现在我面前,信诺誓言的对我说,你爱我...
表达兄弟情深的句子 关于表达兄弟情深的句子  在平日的学习、工作和生活里,许多人对一些广为流传的句子都不陌生吧,句子是能...
高情商发圈被秒赞的句子正能量 高情商发圈被秒赞的句子正能量  在平平淡淡的日常中,大家都接触过比较经典的句子吧,句子是能够表达一个...
悼念去世亲人的句子 悼念去世亲人的句子  在日常学习、工作抑或是生活中,大家肯定对各类句子都很熟悉吧,句子能表达一个完整...
七月你好的唯美句子 七月你好的唯美句子  在生活中,我跌倒过。我在嘲笑声中站起来,虽然衣服脏了,但那是暂时的,它可以洗净...
对某人失望心寒的句子 对某人失望心寒的句子(精选120句)  失望,有时候也是一种幸福,因为有所期待所以才会失望。因为有爱...
杨绛我们仨句子赏析 杨绛我们仨句子赏析  《我们仨》是2004年7月生活·读书·新知三联书店出版的图书,作者是杨绛。下面...
唯美心情句子 2022年常用唯美心情句子汇总90句  原来和文字沾上边的孩子从来都是不欢乐的,他们的欢乐象贪玩的小...
常用早安共勉句子微信 常用早安共勉句子微信大合集41句  人生如车,或长途,或短途;人生如戏,或喜,或悲。很多事,过去了,...
感恩父母恩情的句子 关于感恩父母恩情的句子大全  无论在学习、工作或是生活中,大家最不陌生的就是句子了吧,句子是能够表达...
早上发朋友圈正能量的句子   生活没有真正的完美,只有不完美才是最真实的美;生活没有一帆风顺的,只有披荆斩棘才能路路顺;生活没...
深情表白句子 深情表白句子  在日复一日的学习、工作或生活中,大家都接触过很多优秀的句子吧,句子可分为单句和复句,...
描写夏天小雨的好句子 描写夏天小雨的好句子  在平时的学习、工作或生活中,大家都对那些朗朗上口的句子很是熟悉吧,句子由词或...
展望未来的句子 展望未来的句子(精选100句)  在学习、工作或生活中,大家都收藏过令自己印象深刻的句子吧,根据语气...
致敬英雄的句子 致敬英雄的句子  在我们平凡的日常里,大家最不陌生的就是句子了吧,从表达的角度说,句子是最基本的表述...