CF757G Can Bash Save the Day? #include<bits/stdc++.h> #define RG register #define IL inline #define _ 200100 #define ycb (1<<30) #define ll long long using namespace std; IL int gi(){ RG int data = 0 , m = 1; RG char ch = 0; while(ch != '-' &a…
[CF757G]Can Bash Save the Day? 题意:给你一棵n个点的树和一个排列${p_i}$,边有边权.有q个操作: 1 l r x:询问$\sum\limits_{i=l}^r dist(p_i,x)$2 x:$swap(a_x,a_{x+1})$ $n,q\le 2\times 10^5$,强制在线.题解:学到了新姿势:可持久化点分树.我们先将询问变成前缀相减的形式,然后对于每一个前缀都用一个点分树来维护,不难在$O(\log n)$的时间内处理掉一组询问.现在问题在于如何…
前言: 原本因为kma太弱,很多算法没学学了也不会用,打算设置密码给自己看.后来想了想,觉得也没有必要,既然决定了要学些东西到脑子里,就没什么好丢人的. 注:"×"意为完全没学,"O"意为学了但还不太会用的,"√"为目前基本复健成功的. 数据结构: (√)线段树 (×)线段树扩展1:zkw线段树 (×)线段树扩展2:李超线段树 (√)线段树扩展3:主席树 (√)ST表--解决RMQ问题 (√)树链剖分 (√)树状数组 (√)并查集 (√)并查集小…
系统 : Windows xp 程序 : Keygenme # 2 程序下载地址 :http://pan.baidu.com/s/1qYIk2HQ 要求 : 注册机编写 使用工具 : OD 可在“PEDIY CrackMe 2007”中查找关于此程序的讨论,标题为“一个据说是新手级Crackme的分析”. 运行程序,查找字符串定位关键算法位置.大致的看一下程序主体: CE0>], 004400CE ; enter user-name: enter user-id: enter password:…
题目链接: Codeforces757G 题目大意:给出一棵n个点的树及一个1~n的排列pi,边有边权,有q次操作: 1 l r x 求 $\sum\limits_{i=l}^{r}dis(p_{i},x)$ 2 x $swap(p_{x},p_{x+1})$ $n,q<=2*10^5$,强制在线 如果多次询问一个点到所有点的距离和,我们可以点分树解决,在点分树上每个点x维护点分树上x子树中的所有点到x的距离和及所有点到x父节点的距离和,每次询问往根爬容斥一下求和即可.如果没有修改操作我们依旧可…
题目大意 有两个长度为\(n\)的序列\(a_1,...,a_n\),\(b_1,...,b_n\)(\(a,b\leq n\leq 3\times 10^5\) ).一次操作是选取 \([l,r]\) ,将 \(a_l,...,a_r\) 排序.问能否通过若干次操作把 \(a_1,...,a_n\) 变得和 \(b_1,...,b_n\) 一样. 题解 这个人讲得很清楚 首先,如果\(a,b\)中每个数的出现次数不一样,那么一定不能. 其余的部分的问题在于能不能通过交换\(a\)中一些数的位置…
题目大意 有一棵\(n\)(\(n\leq 1666\))个点的树,有点权\(d_i\),点权最大值为\(w\)(\(w\leq 1666\)).给出\(k\)(\(k\leq n\)),定义一个选择连通块的方案的权值为该连通块第\(k\)大的点权,如果该连通块大小\(<k\),那么该方案的权值为0.求所有选择连通块的方案的权值之和. 题解 考虑暴力: 设\(f(S,k)\)表示连通块\(S\)中第\(k\)大的点权,那么答案就是\(\sum\limits_{i=1}^{w}i\times(\s…
题目大意 题目链接 题解 先将\(a\)排序. \(k\)看上去等于怪的血量连续段的个数,但是要注意当存在\(a_i+1=a_{i+1}\)时,虽然它们之间的连续段为空,但是还要算上:而当\(a_m=n\)时,最后一段连续段不用算. 考虑进行游戏的过程:设当前最大血量为\(p\),正在打出第\(q\)张亵渎,那么得到的分数是:\(\sum\limits_{i=1}^p i^k-\sum\limits_{i=q}^{m}(a_i-a_{q-1})^k\). 后一部分可以直接求. 前一部分\(\su…
题目大意 有\(n\)(\(n\leq 10^5\))个数\(a_1,...,a_n\)(\(a\leq 10^{18}\)).有一个图用这个方法生成:若\(a_i\)按位与\(a_j\)不为0,则在\(a_i,a_j\)间连一条无向边.求这个图的最小环,若无环输出-1. 题解 首先发现当有\(i,j,k\in[1,n]\)满足\(a_i,a_j,a_k\)在同一二进制位上为1时,最小环一定为3. 排除掉这种情况后,发现同一二进制位上为1的至多只有两个数,这两个数之间一定连边. 因为\(a\le…
题目大意 有一个串\(s\),一开始只知道它的一个前缀.有\(q\)(\(q\leq 10^4\))个操作,操作有两种:1.给一个字符串,表示\(s\)(\(s\)总长\(\leq 6\times 10^5\))当前未知部分的前缀:2.给一个字符串,问\(s\)的已知部分中有几个子串和该串相同,询问串总长\(\leq 3\times 10^6\).强制在线. 题解 后缀自动机一边extend一边用LCT维护right集合大小. 代码 #include<algorithm> #include&l…