摘要:
阅读全文
摘要:
T1 玩具序列 很简单的一道T1但某人的 st 表炸成灰灰了 首先明确我们是需要维护区间最大和最小,那么容易想到的有以下几个:线段树,st 表,单调队列 对于线段树和 st 表而言 的数据都有点卡时间 st 表还卡空间,而且预处理慢的离谱,虽然最后卡过去了 如此看来单调队列则是不二之 阅读全文
摘要:
T1 平凡 原题链接 首先,我们容易发现直接求 不是最小的子序列的排列的个数有些困难 那我们转换一下来求是最小的子序列的个数再用总个数减去便是合法个数 首先总个数很容易求出,就是 再考虑不合法个数 性质一:对于每一个 前面都不可能有比他 阅读全文
摘要:
T1 项链 首先一个求最大的最小就很容易想到二分 发现我们可以通过 来方便的求出如何删除,总时间复杂度只有 因为这是一个环,我们需要特殊判断首尾相接时的状况 对于最后一个和第一个的比较一定只会删一次 证明如下: \( 阅读全文
摘要:
T1 拼图 首先一点需要明白的是横向移动和纵向移动并无关联 接着我们可以花费 的时间来枚举左右最长长度和上下最长长度 我们只需要在两次循环时分别排个序,左右和上下分别排序 对于左右移动时,我们枚举每一个点在最左或最右的情况,计算出当前最小的长度,并更新最小步数 阅读全文
摘要:
T1 最大公约数 数据极水,啥都能过 第一种方法,暴力剪枝,直接飞过, 过 万不解释 玛德有人在提交时不写输出直接爆零 #include<bits/stdc++.h> #define N 300010 using namespace 阅读全文
摘要:
T1 点分树 很简单的思路,暴力跳父亲,就是去除当前数最后一个 再计算当前子树的答案,记得减去已经算过的子树的答案 #include<bits/stdc++.h> #define N 10000010 #define mod 998244353 #define int long long 阅读全文
摘要:
T1 构造题 没啥好说的,大样例一眼出规律 #include<bits/stdc++.h> #define N 310 using namespace std; int n,l[N][N],r[N][N],a[N][N]; int main(){ freopen("squ.in","r",stdin 阅读全文
摘要:
T1 茵蒂克丝 模拟题,用一个栈模拟就完了,挺简单的有人没看见是非负数 #include<bits/stdc++.h> #define pii pair<int,int> #define fi first #define se second #define N 1000010 using names 阅读全文
摘要:
T1 放学路 一眼发现很像经典 题,方格取数 但是不同点在于这道 不同之处在于两人起点不同且复杂度需要至少 我们首先容易想出来一个假的 的做法是枚举一个交叉点,预处理算四个端点过去的距离 但是 阅读全文