04 2023 档案
摘要:题意 有一个 大小的矩阵,初始均为 ,现在,给出 个操作,使 变为 ,问执行到第几个操作时存在一个 的全 子矩阵。 思路 最容易想到的就是暴力枚举,每执行一次操作就在矩阵中判断是否存在题目要求的子矩阵,但是这样
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; #define int long long const int MAXN = 2e5 + 5; int c[MAXN], ans[MAXN], a[MAXN], maxn, n, y; int lowbit(i
阅读全文
摘要:树状数组的用处 快速求和+快速修改,可以理解为动态前缀和 建立 这就是树状数组能快速求解信息的原因:我们总能将一段前缀 拆成 不多于 段区间,使得这 段区间的信息是 已知的。 于是,我们只需合并这 段区
阅读全文
摘要:什么是并查集 并查集是一种用于管理元素所属集合的数据结构,实现为一个森林,其中每棵树表示一个集合,树中的节点表示对应集合中的元素。 ——摘自oiwiki 简单来说,并查集是一种可以快速求出一个元素的祖先的数据结构 并查集的初始化 通常,我们将每个节点的 设为自己,即 。 for(i
阅读全文
摘要:思路 首先,我们可以通过观察样例发现: 首行和尾行均有一排边界线 + +,所以我们可以先输出它。 当 时,第二行开始和倒数第二行末尾有缺失的日子,所以我们将第二行开始和倒数第二行末尾单独操作。 如何确保格式 用变量 储存输出到哪一天,依次递增,根据 是否满足
阅读全文
摘要:搬运dalao的模板 01背包问题: 无优化 for(int i=1;i<=n;i++) { for(int c=0;c<=m;c++) { f[i][c]=f[i-1][c]; if(c>=w[i]) f[i][c]=max(f[i][c],f[i-1][c-w[i]]+v[i]); } } 一维
阅读全文