08 2022 档案

摘要:莫队也算是一个优雅的暴力吧 复杂度n×sqrt(n) 主要解决离线多个区间问题 注意点分块(i-1)/block+1 排序按照区间左端点作为第一顺序 如果左端点在一个块里 则右端点作为第二顺序 加减操作注意是先++还是后++ 初始L=1,R=0 https://www.luogu.com.cn/pr 阅读全文
posted @ 2022-08-11 16:43 wzx_believer 阅读(35) 评论(0) 推荐(0) 编辑
摘要:取石子 给出四堆石子,石子数分别为a,b,c,d。规定每次只能从堆顶取走石子,问取走所有石子的方案数。 分析:考虑取出石子的序列长度为a+b+c+d,属于第1堆,第2堆,第3堆,第4堆的分别有a b c d 个 此 答 案 为 C(a+b+c+d,a) C(b+c+d,b) C(c+d,c)=(a+ 阅读全文
posted @ 2022-08-11 10:25 wzx_believer 阅读(30) 评论(0) 推荐(0) 编辑
摘要:字典序最大的子序列 题意:给定字符串S,求出字典序最小的子序列 很明显就是从前往后选, 每次选后缀最大的一个字符,这样一定最优 #include<stdio.h> char s[1000000]; int main() { scanf("%s",s); int i,j=0,k,last=0; for 阅读全文
posted @ 2022-08-09 15:32 wzx_believer 阅读(61) 评论(0) 推荐(0) 编辑
摘要:没啥说的 签到题 #include<bits/stdc++.h> using namespace std; #define lowbit(x) x&(-x) #define ll long long const int maxn=4005; int k; int n,m,q,sum; string 阅读全文
posted @ 2022-08-07 18:09 wzx_believer 阅读(143) 评论(0) 推荐(0) 编辑
摘要:https://ac.nowcoder.com/acm/contest/9033/D 分析:这种类型的题目做法很固定 首先离线 设当前点为i 若以i为右端点 则合法的左端点一定是连续的一段 设为[l,r] 这个可以预处理出来 预处理的时候要注意 不能只考虑i的颜色 一定要和之前的颜色取max 询问的 阅读全文
posted @ 2022-08-07 16:18 wzx_believer 阅读(27) 评论(0) 推荐(0) 编辑
摘要:https://www.luogu.com.cn/problem/P2163 很容易想到二维前缀和 但是因为数据范围是不允许的 就和之前校赛的题目一模一样 做这个题目前先看一下这个题目 只要将查询的点分为四个点 放入扫描数组中 再从小到大扫描一遍即可 #include<bits/stdc++.h> 阅读全文
posted @ 2022-08-06 11:55 wzx_believer 阅读(18) 评论(0) 推荐(0) 编辑
摘要:这一场题目出的很好 A题: Task Computing 如果我们已经选了一些物品,其权值为 x,现在我们需要往前面添加一个(w,p) 的物品。 那么我们的权值会变成 w+p · X 这种做法很像模拟经营的 前面选的会对后面产生影响 #include<bits/stdc++.h> using nam 阅读全文
posted @ 2022-08-04 15:29 wzx_believer 阅读(25) 评论(0) 推荐(0) 编辑
摘要:是我太菜了 加上补提也才三个题 A Ancestor 题目主要是让我们求长度为k-1的点集的最近公共祖先(一个点被删了) 方法一用到结论 我们只用取这些点中dfs序最小和最大的两个点来求最近公共祖先就行。 方法二可以维护一个前缀和后缀lca数组 每次删除该点 相当于是求lca(pre[i-1],su 阅读全文
posted @ 2022-08-01 09:30 wzx_believer 阅读(24) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示