摘要:
题目链接 题意 你要解雇一些员工,其中有一些限制。即若要解雇x则必须解雇y。解雇每个人都会有一定的收益。现在要让这个收益最大。输出解雇的人数和最大收益。 思路 最大收益直接跑最大权闭合子图就好了。 然后考虑怎么统计解雇的人数。 根据最大闭合权子图的连边方式可以看出。割掉$S\rightarrow x 阅读全文
摘要:
题目链接 题意 给出一个长度为$n$的序列$a$,问有多少个区间$[l,r]$满足:在区间$[l,r]$内,$[1,r l+1]$的每个整数都恰好出现了一次。 $n \le 3 \times 10 ^ 5$,$a_i \le n$ 思路 可以发现,其实最后的答案一定不会很大。 所以:暴力出奇迹!!! 阅读全文
摘要:
题目链接 题意 给出n条线段。m次询问,每次询问给出一个区间$[l,r]$问最少需要多少条线段才能覆盖区间$[l,r]$。 所有坐标$\le 5\times 10^5$。$n,m\le 2\times 10^ 5$ 思路 其实是比较经典的线段覆盖问题。 $f[i][j]$表示从i开始走$2^j$条线 阅读全文
摘要:
题目链接 题意 给出一个长度为$n$的序列$a$,要求分为恰好$K$段。第$i$个点的贡献是$a_i \times f(i)$,$f(x)$表示x所属的是第几段。 思路 非常巧妙的一个思路。 先让每个元素都选K遍。然后不断的删除。 具体做法就是,先求一遍前缀和。然后找出前缀和最小的$K 1$个前缀, 阅读全文
摘要:
定义 所谓笛卡尔树,就是将给定的$n$个二元组$(key,val)$建成一棵树。使得如果只关注$key$,那么这是一个堆。如果只关注$val$,那么这是一棵二叉搜索树。 有没有很像$treap$。 与$treap$不同的是,笛卡尔树是可以在$O(n)$时间内构建的。而且如果给定key,那么$trea 阅读全文
摘要:
题目链接 思路 用$f(i,j)$表示前i个元素,以i为右端点,j为左端点时的答案。 用个"区间修改,单点查询"的线段树维护出第二维。在从左往右枚举i的过程中。将$[lst_i+1,i]$的答案+1.将$[lst_{lst_i}+1,lst_i]$的答案 1。 代码 cpp / @Author: w 阅读全文
摘要:
题目链接 题意 给出一棵树,每条边有边权。求$\sum\limits_{i=1}^n{f(i,j)}$,$f(i,j)$表示从i到j路径的异或和。 思路 $g_i$表示从根到$i$的异或和,两点之间的路径异或和就可以用$g_i \otimes g_j$表示。 先然$g_i$可以一次$dfs$求出来。 阅读全文
摘要:
题意 t次询问,每次给你一个数n,求在[1,n]内约数个数最多的数的约数个数 $t \le 500,n \le 10^{19}$ 思路 首先可以想到将n质因数分解。即$n= \prod\limits_{i=1}^n{a_i}^{p^i}$ 答案就是$\prod\limits_{i=1}^n{p_i+ 阅读全文
摘要:
题目链接 思路 用一个平衡树维护点的编号和权值。这里的权值是自己赋上去的。 操作1,就把x从平衡树中删掉,然后将其权值变为最小值,重新插入。 操作2,与操作1类似,只要将其权值变为最大值再重新插入就行了。 操作3,其实就是将x与他的前驱或者后继交换。也很容易实现。 操作4,查询排名。 操作5,查找第 阅读全文
摘要:
题目链接 思路 首先这是一个阶梯博弈。 我们将金币两两组合,如果对方移动前一个,那么我们把后一个移动相同的距离,局面相当于没有变化。如果对方移动后一个,就相当于$NIM$游戏中,取走了一些石子。 所以这个游戏也就是金币两两组合后,有$\lceil \frac{m}{2}\rceil$ 堆石子,进行$ 阅读全文
摘要:
题目链接 题意 有n个bug和s个系统。每天会等概率的在某个系统中找一个某一个bug。问找到全部n个bug并且在每个系统中都找到bug的期望天数。 思路 f[i][j]表示在j个系统中找到了i个bug的期望天数。 某天有四种可能: 1.在新的系统中找到新的bug,概率为$\frac{(n i)\ti 阅读全文
摘要:
题目链接 思路 首先观察题目最后的式子$\lfloor \frac{n}{p + 1} \rfloor \le q$ 并且$\lfloor \frac{n}{q+1} \rfloor \le p$。 这个式子其实就是告诉我们$p$和$q$都要尽量大。 然后这道题就可以分成两个小题: 1.求一个子图, 阅读全文
摘要:
题目链接 吐槽 竟然让$nlog$的做法卡过去了。。 思路 因为$1 \le q \le 10^5$,所以可以先对每个 标准操作 ,所操作的位置进行重标号。这样所有的下标都是在$10^5$以内的。 乘和加操作都可以写成$kx+b$的形式。然后对于这些操作维护一个 前缀 。然后就可以得到一个区间内的操 阅读全文
摘要:
题意 给出一张图,将其分为一个团和一个独立集。问有多少种方案。 团和独立集都不能为空 思路 先考虑找可行方案应该怎么做 显然是个$2 sat$。可以将分到团和独立集中分别看为0和1。 如果两个点之间右边,那么必定不能同时在独立集中。如果两个点之间没有边,那么必定不能同时在团中。然后连边$求2 sat 阅读全文
摘要:
题目链接 思路 既然$x$的数量那么小,我们就可以先把每个$x$搜索一遍。 枚举x的时候不需要把$a,b,c$全枚举一遍,只要枚举其中的两个就可以枚举到当前位置选任何车的情况。 然后就变成了只有$'a','b','c'$的序列。寻找满足题目要求的方案。 $2 sat$模型。 连边的时候注意一些技巧, 阅读全文
摘要:
题目链接 思路 首先以那个环为框架,把所有的边连出来。如果有两条边相交,那么就把其中一条放到环外面去。 如图: $(1,3)$与$(2,5)相交,$(1,4)$与$(2,5)相交。所以我们把$(2,5)$这条边放到外面去。 就成了这样 就不会有边相交了。 显然如果两条边在环内相交,那么全部挪到环外也 阅读全文
摘要:
题目链接 题意 给定一张图,对于每条边给出一个运算符$(\&,|,\otimes)$和一个值$c(0 \le c \le 1)$。问能否通过给每个点赋上一个值。使得每条边通过指定的运算都能得到指定的值。 思路 $2 sat$问题,需要注意的是当两数$\&$起来为$1$时。必须全部为$1$,所以就从每 阅读全文
摘要:
问题简介 在计算机科学中,布尔可满足性问题(有时称为命题可满足性问题,缩写为SATISFIABILITY或SAT)是确定是否存在满足给定布尔公式的解释的问题。换句话说,它询问给定布尔公式的变量是否可以一致地用值TRUE或FALSE替换,公式计算结果为TRUE。如果是这种情况,公式称为可满足。另一方面 阅读全文
摘要:
题目链接 题意 给出一个长度为$n(n \le 10^5)$序列,求其每个子序列之和所组成的集合的$mex$ 思路 这么水的题都没想出来,感觉自己脑子瓦特了。 假设前$i$位可以组成区间$[0,x]$内的所有数。那么加入第$i+1$位后,就会让$[0+a[i+1],x + a[i + 1]]$这个区 阅读全文
摘要:
效果可以参考本博客。 在博客园页脚$html$代码中添加如下代码即可。 阅读全文
摘要:
简介 $fhq\_treap$是一种非旋平衡树。在学习这篇文章之前,还是先学习一下普通$treap$吧 优点 相比于普通的$treap$,它可以处理区间操作。 相比于$splay$,它简洁易懂,代码也较短。 缺点 要比$splay$和$treap$慢 基础操作 $fhq\_treap$最基本的两个操 阅读全文
摘要:
题目链接 思路 先考虑一条链的情况怎么做。 因为只有两个子树,并且两个子树都是链。所以可以把这两条链找出来,然后$sort$一下。合并起来。 然后推广到树上 对于每一棵树都可以按照和上面同样的方法合并成一条链。 这样就可以$O(n^2logn)$做了。 考场上就想到这些。而且链的情况还忘了存档。。。 阅读全文
摘要:
题目链接 思路 首先求个前缀异或和,这样就可以$O(1)$的得到区间异或和了。 然后发现问题转化为 找出不同的$k$个二元组$x,y$。使得$a_x \otimes a_y$的和最大。 有个比较有趣的思路 设$S_i$表示前$i$个元素的异或和。对于每个$S_i$,我们找出在$S$数组中与他异或起来 阅读全文
摘要:
Rand1 Day0 一大早就起床,结果忙活了整整一上午。 12:20从gryz出发,路上发现把耳机和笔忘另一个背包里了(都怪老爸非得让我换背包),15:30差不多就到山师了。 山师也是蛮漂亮的,花开得挺好。到处是牵着手的小情侣。啧啧啧~。恰逢清明,给他们烧柱香吧 一时间难以表达内心的欢愉(第一次带 阅读全文
摘要:
题目链接 题面 题目描述 $Mas$完成了一天的工作,走在回家的路上,看着路边的景色,他想起来自己的童年。 许许多多的记忆交错,丝丝缕缕的牵扯着$Mas$。 在回忆的深处,$Mas$想起来了一个常常在幼儿园玩的游戏。 有$n$个小朋友一起排成一排,然后小朋友们会一起开始跳舞。 聪明的$Mas$发现, 阅读全文
摘要:
题目链接 题意 其实就是求 $$\sum\limits_{i=1}^n\sum\limits_{j=1}^ngcd(i,j)$$ 思路 建议先看一下此题的一个弱化版 推一下式子 $$\sum\limits_{i=1}^n\sum\limits_{j=1}^ngcd(i,j)$$ $$= \sum\l 阅读全文
摘要:
题目链接 思路 首先考虑暴力$dp$ 用$f[i][j]$表示前$i$个字符,以$j$这个字符结尾的本质不同的字符串个数。 然后就有如下的转移 $if(s_i==j)$ $$f_{ij}=\sum\limits_{i=1}^9f_{i 1j} + 1$$ $else$ $$f_{ij}=f_{i 1 阅读全文
摘要:
题目 思路 首先按照$t$排序!!!! 首先考虑一个暴力$dp$ 用$f[i]$表示前$i$个人到达地点所需要的时间。 那么就有如下的转移 $$f_i = min_{1 \le j \le i}(max(f_j,t_i) + max\{w_{j + 1} ... w_i\} 2)$$ 这样复杂度是$ 阅读全文
摘要:
题目 定义$f(i)$为$i$的所有约数的异或和,给定 $n(1\le n \le 10^{14})$ ,求$f(1) xor f(2) xor f(3) xor...xor f(n)$ (其中$xor$表示按位异或) 思路 首先考虑到枚举因数$x$,然后算出他是小于等于$n$的数字中$x$的倍数的 阅读全文
摘要:
题目链接 题意 给出参数$C_1,C_2,P$按如下方式生成一个长度为$n \times m$的序列$x$: $x_0 = C_1,x_1=C2$ $x_i=(x_{i 1}+x_{i 1}) \% P \; (i 1)$ 然后按如下方式生成一个长度为$n \times m$的序列$a$ $$a_i 阅读全文