奇技淫巧
Master.Yi
学习他人,提升自己;
提升自己,帮助他人。
展开
-
20200405 T2 mid 随机序列插入求中位数
题目描述:有一个多重集,初始为空。n次操作,每次往多重集插入一个整数,求每次插入完后多重集的中位数,输出所有中位数的异或和。给出第一次操作的插入的数和nnn,其余的数按某种方式随机生成。50%50\%50%的数据,n≤106n\le10^6n≤106100%100\%100%的数据,n≤3∗107n\le3*10^7n≤3∗107Upd:LOJ上有:#6137. 「2017 山东三轮集训...原创 2020-04-08 22:39:16 · 405 阅读 · 0 评论 -
int add(x,y)和void add(&x,y)的速度比较
在不开O2的情况下,void add(&x,y)的速度快于int add(x,y)。且数组整体速度快于vector。在开O2的情况下,对于数组来说,void快于int;对于vector来说,int快于void。且vector整体速度快于数组。...原创 2020-03-31 11:14:45 · 1099 阅读 · 0 评论 -
模拟赛20200224【直径期望(积分),本质不同子序列(矩阵乘法优化),强连通分量序列(贪心DP)】
T1:Expectation给出nnn个点的树,树的边权是[0,1][0,1][0,1]中随机的一个实数,求直径的期望长度。n≤100n\le100n≤100题解:T2:Sequence一个长度为nnn的包含大小写字母的字符串,QQQ次询问区间本质不同的子序列个数,强制在线。n,Q≤106n,Q\le10^6n,Q≤106题解:一般求本质不同的子序列数是设f[i]f[i]f[i]...原创 2020-02-28 08:28:17 · 676 阅读 · 0 评论 -
LOJ#6034. 「雅礼集训 2017 Day2」线段游戏【李超线段树】
题目描述:题目分析:Code:#include<bits/stdc++.h>#define maxn 200005#define x0 x_0#define x1 x_1#define y0 y_0#define y1 y_1using namespace std;const int N = 1e5;const double inf = 1e9;int ...原创 2019-12-29 22:50:50 · 245 阅读 · 0 评论 -
省选模拟赛第三场 T1 与非(巧妙的线段树+后缀insert优化 || 思维题)
https://blog.csdn.net/c20180602_csq/article/details/104127785转载 2020-02-01 17:16:42 · 165 阅读 · 0 评论 -
省选模拟赛20200131 T3 数星星【三角形二维数点】
题目描述:一个二维平面直角坐标系,其中有 N 颗星星(坐标为整点),你会有 M 个询问,询问以某个整 点为顶点的正三角形包含大于等于 K 个星星的最小非负整数边长为多少,如果无 法满足输出-1。对于一个 正三角形,如果给出的顶点为(X,Y),边长为 L(L>=0,当 L 为 0 的时候退化为一 个点),那么三个顶点坐标分别为(X,Y),(X+L/2,Y+L/2*sqrt(3)),(X+L...原创 2020-01-31 22:38:50 · 444 阅读 · 0 评论 -
BZOJ2794: [Poi2012]Cloakroom【偏序+背包】
题目描述:题目分析:和恰好为k可以用背包。物品a[i]<=m的限制可以将询问离线后排序添加物品。但是b[i]>m+s就不好搞了。这里有一个神奇的trick:f[i]f[i]f[i]记录组成和为iii的物品中最小bbb的最大值,这个若最大值>m+s,则说明存在一种方案。初始f[0]=INFf[0]=INFf[0]=INF,f[i>0]=0f[i>0]=0f[...原创 2019-11-15 13:31:04 · 350 阅读 · 0 评论 -
BZOJ4170: 极光【曼哈顿转切比雪夫距离+离线二维数点(排序+cdq分治+树状数组)】
题目描述:天空中出现了许多的北极光,这些北极光组成了一个长度为n的正整数数列a[i],远古之魔书上记载到:2个位置的graze值为两者位置差与数值差的和:graze(x,y)=|x-y|+|a[x]-a[y]|。要想破解天罚,就必须支持2种操作(k都是正整数):Modify x k:将第x个数的值修改为k。Query x k:询问有几个i满足graze(x,i)<=k。询问不仅要...原创 2019-10-05 15:43:17 · 206 阅读 · 0 评论 -
BZOJ4664: Count【分段DP】
题目描述:有n本高度不同的书排成一排,混乱度为相邻高度之差的绝对值之和,求混乱度<=L的排列方案数。n<=100,h[i]<=1000题目分析显然很难表示当前放的书的状态以及计算每放一本书时的对混乱度的贡献。按照常规想法我们会想到从小到大放书,这看似没有什么用。但是大佬想到了整合贡献,分步处理的方法。题解链接把已经放的书看成一些段,这些段有些是已经确定为边界的,有些是...原创 2019-10-05 09:23:54 · 293 阅读 · 0 评论 -
NOIP模拟赛 CQBZ 3501. survive【并查集+倍增】
题面:n,m≤105n,m\le10^5n,m≤105题目分析:容易想到的暴力做法是把每次的区间要求[l,r]拆分成r-l+1个单点要求,并查集维护单点要求,最后扫一遍查询。复杂度是O(nmα)O(nm\alpha)O(nmα)的,但是由于出题人太过良心,这样你就能得到80分。把要求每次拆分很显然要T,我们考虑优化每次的要求,其时间就浪费在重复要求已经相等的点对上。怎么办呢,其实只要...原创 2019-07-10 21:39:03 · 205 阅读 · 0 评论 -
BZOJ4666: 小Z的胡话【斐波那契循环节】
题目描述:题目分析:对于一个longlong级别的斐波那契数列我们能做什么呢?naive一点就只能算一算模mod下的第n项了。如果这个mod很小,那么我们暴力枚举就可以得到答案。如果x%Mod=a%Mod, 那么对于一个比Mod小的mod,x%mod也一定等于a%mod也就是说我们可以先取一个小mod,把x%mod=a%mod的x找出来放进vector里面,再考虑大Mod的情况。但...原创 2019-05-23 17:50:33 · 453 阅读 · 0 评论 -
十二省联考D1T1 异或粽子【可持久化Trie+优先队列】
洛谷传送门题目分析:我们知道Trie树可以对某一个值查询与它异或第k大的值。但是全局前k大就懵逼了。这时候就有一个神奇的技巧套路,对每个右端点,找到与它异或最大的左端点,将这n个值放入优先队列中。这时候队首一定是全局最大值,加进答案中,pop掉,然后再找到这个值对应的右端点的左端点中第二大的,放入优先队列中。这时候的队首一定是全局第二大。一直这样做k次即可。找右端点对应的第几大左端...原创 2019-04-06 19:05:26 · 242 阅读 · 0 评论 -
Newnode's NOI 模拟赛 第三题 【可持久化线段树优化建图】
题面:n<=100000题目分析:两个宇宙之间的大小关系是确定的,考虑从大的向小的连一条边。这样连边可能会成环(边双联通分量),按某种顺序排列,环中的点都可能成为环中的最大点,tarjan将环缩点之后,没有入度的连通分量中的点就是可能成为最大宇宙的点。正确性似乎比较显然,于是考场上打了60分的n2暴力就溜了。后来一想,边数太多,显然又是什么xxx优化建边。果然。以下题解引...转载 2019-03-27 17:05:56 · 358 阅读 · 0 评论 -
BZOJ 4260: Codechef REBXOR 【Trie树贪心求区间异或和最值】
题目传送门题目分析:设f[i]f[i]f[i]表示[1,i][1,i][1,i]中区间异或和的最大值 ,g[i]g[i]g[i]表示[i,n][i,n][i,n]中区间异或和的最大值(一个前缀一个后缀)那么答案就是max{f[i]+g[i+1]}max\{f[i]+g[i+1]\}max{f[i]+g[i+1]}考虑如何求fff,记s[i]s[i]s[i]表示[1,i][1,i][1,i...原创 2019-03-19 21:59:47 · 347 阅读 · 0 评论 -
BZOJ 4012: [HNOI2015]开店 【主席树区间修改+树剖维护路径和】
题目分析:dalao博客把距离看成dep[u]+dep[v]−2∗dep[lca]dep[u]+dep[v]-2*dep[lca]dep[u]+dep[v]−2∗dep[lca]求dep[lca]dep[lca]dep[lca]的时候就用v点在路径上打标记,u点向上统计到根的路径和(似乎是lca的老套路?)路径就用树链剖分+线段树维护由于对v点有区间限制,所以把线段树换成主席树就好了。...原创 2019-03-20 16:59:41 · 203 阅读 · 0 评论 -
树状数组区间修改区间查询
众所周知树状数组是很强大的目前已知可以维护前缀和,不修改的前缀最值,前缀位运算等等反正总之就是一个巨强的前缀数据结构如果需要区间修改单点查询,可以差分解决那么区间修改区间查询呢。举个例子:a[1]~a[n]的数组,每次操作要么给a[l]~a[r]每个位置+x,要么查询a[l]~a[r]的和,操作数105同样考虑差分,记c[i]=a[i]−a[i−1]c[i]=a[i]-a[i-1...原创 2019-03-08 11:29:19 · 290 阅读 · 0 评论 -
51nod 1850 抽卡大赛 (十二省联考模测) 【"动态"(多项式) DP】
题目传送门题目分析:如果只求第i个人的收入,那么只需要枚举他选抽到哪一张卡,然后O(n2)DP算出他排名为k的概率即可。求一个人是O(n3),求n个人就是O(n4)的。打完这个暴力发现居然有63分然后就溜了。。O(n3)的做法:对于一个权值A,显然只有大于它的值会对它的排名造成影响。所以我们将所有的A值放在一起排序,考虑如何求出Ai的期望排名。如果不同的A由不同的人选择,那么这是个很...原创 2019-03-24 21:00:04 · 191 阅读 · 0 评论 -
51nod 1984 异或约数和(十二省联考模测)【连续整数的异或和】
题目传送门题目分析:枚举约数时候就是⌊ni⌋\lfloor \frac ni\rfloor⌊in⌋个iii异或起来,只有⌊ni⌋\lfloor \frac ni\rfloor⌊in⌋为奇数有贡献,⌊ni⌋\lfloor \frac ni\rfloor⌊in⌋只有2n2\sqrt n2n个取值,而有一段连续数除n下取整的值是相同的。所以问题就是求连续整数的异或和,差分一下就是[0,n]...原创 2019-03-24 21:17:40 · 295 阅读 · 0 评论 -
BZOJ 3514: Codechef MARCH14 GERALD07加强版 【LCT+主席树求图的连通块个数】
题目描述:题目传送门N个点M条边的无向图,询问保留图中编号在[l,r]的边的时候图中的联通块个数。n,m<=200000题目分析:图的连通块个数肿么求?按编号顺序依次加边。如果边iii加入的时候形成了环,那么把环中最先加入的边jjj找到,令pre[i]=jpre[i]=jpre[i]=j,并把jjj断掉。如果没有成环,那么pre[i]=0pre[i]=0pre[i]=0区间...原创 2019-03-22 08:18:05 · 494 阅读 · 0 评论 -
BZOJ 3658: Jabberwocky 【双向链表+树状数组】
题目描述:平面上有n个点,每个点有k种颜色中的一个。你可以选择一条水平的线段获得在其上方或其下方的所有点,如图所示:请求出你最多能够得到多少点,使得获得的点并不包含所有的颜色。n,k<=100000题目分析:不包含所有的颜色 →\rarr→ 保证一种颜色不选,其它任意考虑两个颜色相同的横坐标相邻的点(x0,y0)(x_0,y_0)(x0,y0)和(x1,y1)(x_1,y...原创 2019-03-22 10:58:22 · 292 阅读 · 0 评论 -
51nod 1989 竞赛表格 【暴力搜索合法状态】
题目传送门题目分析:abcde‾+edcba‾=10001(a+e)+1010(b+d)+200c\overline{abcde}+\overline{edcba}=10001(a+e)+1010(b+d)+200cabcde+edcba=10001(a+e)+1010(b+d)+200ca+e∈(0,18],b+d∈[0,18],c∈[0,9]a+e\in(0,18],b+d\in[0,1...原创 2019-03-19 10:47:32 · 229 阅读 · 0 评论 -
BZOJ 2759: 一个动态树好题 【LCT(节点维护线性方程)】
题目描述:题目传送门有N个未知数x[1…n]和N个等式组成的同余方程组:x[i]=k[i]∗x[p[i]]+b[i]mod10007x[i]=k[i]*x[p[i]]+b[i] mod 10007x[i]=k[i]∗x[p[i]]+b[i]mod10007其中,k[i],b[i],x[i]∈[0,10007)∩Z你要应付Q个事务,每个是两种情况之一:一.询问当前x[a]的解:A a无...原创 2019-03-22 17:37:50 · 198 阅读 · 0 评论 -
BZOJ 4009: [HNOI2015]接水果 【整体二分+矩形覆盖(dfs序解决树上路径包含问题)】
BZOJ传送门洛谷传送门题目分析:乍一看路径包含,什么玩意??然后就被dalao的分析震惊了居然可以转化成dfs序,判断x,y路径在盘子子树内、子树外。若x与y不成祖先-孩子关系,则包含它的路径u-v满足:起点在x的子树里,且终点在y的子树里。若x与y成祖先-孩子关系,假设y是x的祖先,z是y到x方向的第一个节点,则包含它的路径u-v满足:起点在x的子树里,且终点不在z的子树里。...原创 2019-03-22 21:09:06 · 175 阅读 · 0 评论 -
BZOJ 2065: Ural1807 Cartridges for Maxim 【乱搞】
题目描述:给出一个合数n,找出一些数字a1,a2,…,ak使得a1+a2+…+ak=n,且gcd(a1,a2,…,ak)最大,如果有多种可能再使lcm(a1,a2,…,ak)最大,升序输出a1,a2,…,ak。200 <= n <= 109题目分析:因为a1+a2+…+ak=n,所以gcd(a1,a2,…,ak)一定是n的约数,那么最大的时候就是n的最大因数那么a1,a2…a...原创 2019-03-08 15:50:08 · 270 阅读 · 0 评论