上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 68 下一页
摘要: 经典套路,离线枚举右端点计算左端点。感觉这种题都已经出烂了 首先我们观察到,对于一个右端点i来说,合法的一定是一段区间,也就是最大值是k-k+1的区间,因此我们对每个种类维护一个队列 这样可以计算到达k和k+1的信息,并维护合法区间。 之后就是线段树插入和查询了,插入就是对于我们枚举的右端点,去插入 阅读全文
posted @ 2020-11-30 20:54 朝暮不思 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 挺有意思的一道概率题 首先总方案数是已知的,因此就是求取合法方案 我们分析题目,发现1-n要被覆盖,且每个点只能被覆盖一次 这说明这题就是把整条线段分成奇数和的种类数 这种题一般都是dp题,要不就是组合数学大佬秒的 考虑一下暴力的dp,就是枚举前面合法状态去更新,并且要-1,-3这种因为我们要保证最 阅读全文
posted @ 2020-11-30 16:30 朝暮不思 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 强制在线,那就看看能不能套一些数据结构上去,发现这是个分段函数 我们要求的又是一段区间内的值,因此分两点考虑 区间值是否可以通过前缀和查询,在这个基础上,如何维护前缀和信息。 考虑使用主席树来维护区间,那么在做每个点的时候,我们发现这是一段分段函数,也就是对于值域来说,可以差分的维护信息,这样只要求 阅读全文
posted @ 2020-11-29 20:16 朝暮不思 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 经典套路题,发现l,r都在变,因此枚举r,找到最小的l即可 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,int> pll; typedef pair<int,int> plll; 阅读全文
posted @ 2020-11-27 22:49 朝暮不思 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 首先我们发现每两个点会构成一对,他们公用一条边,且边集不能共用任何一个点 如果我们可以找到这样的边集使得所有点都被选中,那么bob是必赢的,否则是必输的 原因是,我们对于每个点都能找到一个对应匹配的点,不论alice选什么,bob都有的选,直到alice选不到 那么反之alice必胜,因为alice 阅读全文
posted @ 2020-11-24 18:35 朝暮不思 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 观察到询问的个数还能接受,我们考虑使用分块办法来维护答案 对于每次更新,边界块暴力,中间块维护整块信息,我们对每个块维护一个mi,表示对整块取min的值 更新的时候,整块只用维护min值,边界块需要更新并且重新排序,因为并不是所有的点都被改变。 询问的时候采取二分check,check的方法也是如此 阅读全文
posted @ 2020-11-20 21:46 朝暮不思 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 暴力二分答案即可获得正解,注意边界问题 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,int> pll; const int N=1e6+10; ll n,m,k; ll a[N] 阅读全文
posted @ 2020-11-20 12:00 朝暮不思 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 这种题一般都是算贡献,对于这题,我们显然发现,每个点作为最大值肯定是有一定范围的。 因此我们考虑将点排序,计算每个点作为最大值的答案。 枚举每个点,之后遍历他的邻边,如果有之前被标记过的点,说明他是最大值,因此用并查集维护后,计算集合乘积即可 #include<bits/stdc++.h> usin 阅读全文
posted @ 2020-11-18 21:35 朝暮不思 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 本题因为设计到区间到区间的连边,因此使用线段树优化建图 原理就是用out树和in树,一棵儿子向父亲连边,一棵父亲向儿子连边,然后叶子和叶子连边,对于两个区间的连边,用一个附加节点来表示连接。 建树使用动态开点,但是本题的内存需要计算,不然就会出现开大mle,小则re的尴尬情况 建完图后就是跑一下最短 阅读全文
posted @ 2020-11-17 20:00 朝暮不思 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 类似的贪心思路,肯定找是通过这个点能到的最远的点,这样是最优的。 但是询问次数很多,因此考虑用倍增思想,直接求出每个点通过2^i个边能到的最远点。 这是因为最后的答案一定是最小通过x条边,并且这个x一定能被二进制表示出来 #include<bits/stdc++.h> using namespace 阅读全文
posted @ 2020-11-16 19:32 朝暮不思 阅读(98) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 68 下一页