不来也不去的一只失忆蝴蝶

曾迷途才怕追不上满街赶路人

归并排序

题目大意给一个长度为2的次幂的排列做归并排序,在区间长度为2时比较器会变成随机返回值。 多次操作,每次要么交换两个位置,要么询问归并排序后第x个位置等于排序前第y个位置的概率。做法容易发现,如果x#include<cstdio> #include<algorithm> #...

2017-06-28 20:57:30

阅读数:259

评论数:0

摧毁图状树

题目大意Q次询问,每次给一个k。 将树用尽量少的长度不超过k的祖先后代链覆盖,使得每个点至少覆盖一次。贪心对偶成选择尽量多的点,使得任意长度不超过k的祖先后代链上至多一个点被选择。 这样转化则贪心很显然。尽量选深度大的点。 如果有t个叶子,选取的点至多为t+(n-t)/k。 因为叶子一定会...

2017-06-28 19:24:21

阅读数:404

评论数:0

[bzoj4849]Mole Tunnels

题目描述鼹鼠们在底下开凿了n个洞,由n-1条隧道连接,对于任意的i>1,第i个洞都会和第i/2(取下整)个洞间有一条隧 道,第i个洞内还有ci个食物能供最多ci只鼹鼠吃。一共有m只鼹鼠,第i只鼹鼠住在第pi个洞内,一天早晨,前k只 鼹鼠醒来了,而后n-k只鼹鼠均在睡觉,前k只鼹鼠就开始觅...

2017-06-26 16:47:09

阅读数:342

评论数:0

[JZOJ100020]B

题目大意有多少n*n的01矩阵每行每列恰有2个1。推式子设a(n)表示答案。 每次新加一行一列,你找到一行,把最后一行和它换,并在最后一列这行的位置写上1。 然后再找一行,在最后一列这写1,并找到之前一个位置的1把它翻到只有一个1的那行。 这样是n*(n-1)*a(n-1)。 你发现有种情...

2017-06-26 16:43:33

阅读数:227

评论数:0

[JZOJ100019]A

题目大意求一颗树有多少条不同的路径,使得路径长度>1且不存在j!=k满足j是k倍数。瞎做有n log n个限制某两个点不能出现在一条路径中。 可以转化成某个区间的起点不能以某个区间为终点。 然后扫描线用线段树维护。 这个是既包含插入又包含删除的覆盖问题。 因为操作具体对称性所以可以标...

2017-06-26 16:08:40

阅读数:226

评论数:0

[hihocoder1527]快速乘法

题目描述在写代码时,我们经常要用到类似 x × a 这样的语句( a 是常数)。众所周知,计算机进行乘法运算是非常慢的,所以我们需要用一些加法、减法和左移的组合来实现乘一个常数这个操作。具体来讲, 我们要把 x × a 替换成:(x<<a0)op1(x<<a1)op2(x&...

2017-06-26 15:58:32

阅读数:431

评论数:0

[hihocoder1526]序列的值

题目描述给定一个长度为 n 的序列 a[1..n],定义函数 f(b[1..m]) 的值为在 [0,m-1] 内满足如下条件的 i 的数目:b 中前 i 个数异或起来的值小于 b 中前 i +1个数异或起来的值。对于 a[1..n] 的每个子序列 b[1..m],求f(b[1..m])之和。做法显...

2017-06-26 15:48:20

阅读数:387

评论数:0

[51nod1355]斐波那契的最小公倍数

题目大意求n个斐波那契数的最小公倍数。做法首先斐波那契数列有性质(fn,fm)=f(n,m)(f_n,f_m)=f_{(n,m)} 具体证明不证了,烂大街的性质了。 构造数列g满足 fn=Πd|ngdf_n=\Pi_{d|n}g_d 可以用莫比乌斯反演求出g gn=Πd|nfμ(nd)d...

2017-06-25 22:33:29

阅读数:388

评论数:0

回转寿司

题目描述分块你考虑有一堆人,价格为x的进去了出来会变成啥样。 那么肯定是找到这堆人所持价格的最大值y,如果x>y,出来的还是y,否则x会变成某个人手里的,然后出来的是y。 我们考虑分块,每个块维护一个数堆。 如果x要经过一个块,可以丢进数堆,再取出一个最大值。然后还要给这个块打上一个标...

2017-06-25 20:44:18

阅读数:268

评论数:0

三明治

题目描述做法对于每个格子(i,j)设L(i,j)表示先吃靠左边界的格子至少要吃多少格子,R意义类似。 然后你发现L(i,j)>=L(i,j-1)。 于是一行一行做,每行才清空一次标记数组。#include <cstdio> #include <algorithm>...

2017-06-25 20:35:18

阅读数:141

评论数:0

电报

题目大意n个点,每个点出度均为1的有向图。 你可以将j->k改成j->l,代价为c[j]。 求最小代价,使得有向图变成一个环。贪心我们把问题描述成删去若干条边,删除每条边都有代价,最小代价使得每个联通块都是一条链(这样才能连成环)。 假如一个点有k个入度,至少k-1个要被删掉。 ...

2017-06-23 17:05:25

阅读数:315

评论数:0

没有上司的舞会

题目大意动态加子节点的树,每次询问最大独立集大小。DP给平衡树每个点x维护一个f[x,0/1,0/1]表示以x为根的这个平衡树区间在原树上对应的部分(包括连出去的虚子树)的最大独立集是多少,且这个平衡树区间的左端和右端选或不选。 然后就很好做了。#include<cstdio> #i...

2017-06-22 20:43:26

阅读数:293

评论数:0

最小生成树

题目描述结论下面的m均指非树边有m条。 非树边的权值肯定赋值为路径上的最大值(根据环切原理这是下界)。 考虑按权值从小到大加入,每加入一条边就会连接两棵树。 那么一条非树边如果左端在其中一颗树中,右端在另一颗树中,则其权值和该树边一致。 由于是按照权值从小到大加入的,我们希望每次有尽量多的...

2017-06-22 20:39:40

阅读数:253

评论数:0

字符串游戏

题目大意题解瞎猜想和画图得到一个不好说的结论。 用诡异的单调栈做。#include<cstdio> #include<algorithm> #define fo(i,a,b) for(i=a;i<=b;i++) #define fd(i,a,b) for(i=a;i...

2017-06-22 20:16:12

阅读数:234

评论数:0

[LOJ6087]毒瘤题

题目大意找到k个出现次数为奇数的数,保证只有k个数出现奇数次。做法k=1全部异或起来。 k=2保存一个c[i]表示第i位上是1的数的异或和。 得到a^b,找到最高位k,那么c[k]是其中一个,然后能得到另一个。#include<cstdio> #include<algorit...

2017-06-22 20:13:01

阅读数:304

评论数:0

[LibreOJ β Round]ZQC的手办

题目大意区间对一个数取max。 区间求最小的x个比k小的数。线段树第一个操作很好搞。 第二个操作有个很显然的常数大做法。 实际上可以用堆把这个区间的笛卡尔树按优先级广搜。#include<cstdio> #include<algorithm> #include<...

2017-06-19 21:08:11

阅读数:317

评论数:0

[LibreOJ β Round]ZQC的课堂

题目描述https://www.loj.ac/problem/503题解x和y是可以分开考虑的。 设si表示某维坐标的前缀和。 要求统计多少i满足si*si-1<=0(此时会有正负交替)。 我们发现这个条件等价于max(si,si-1)>=0且min(si,si-1)<=0...

2017-06-19 16:36:53

阅读数:375

评论数:0

[51nos1971]驴蛋蛋与老孙与微分式

题目描述http://www.51nod.com/contest/problem.html#!problemId=1971oeis这是一道oeis题,把答案打表,差分丢oeis,可以得到一个东西。 接下来用FFT预处理伯努利数,用公式做。#include <iostream> #in...

2017-06-18 22:37:59

阅读数:420

评论数:0

[51nod1786]数据流中的算法 - 众数

题目描述数据流统计功能上线后,为51nod提升用户体验做出了很大的贡献。但是新问题随之而来,夹克老爷还想知道在一个窗口内,访问次数最多用户(即窗口内的众数)。如果有多个众数,取用户ID最小的一个。(窗口的意思是一个固定长度的区间!)(因为数据流是实时的、在线的,所以不允许使用离线算法^_^)做法一...

2017-06-18 22:26:39

阅读数:445

评论数:0

[CodeM初赛A轮]E

题解大小点分治。 出现次数大于阈值的,处理前缀和,然后暴力枚举一个询问判断。 出现次数小于阈值的,跑莫队,维护每个数出现次数,以及每种出现次数的数的个数,然后询问可以暴力枚举出现次数。#include<cstdio> #include<algorithm> #defin...

2017-06-18 22:20:41

阅读数:458

评论数:2

提示
确定要删除当前文章?
取消 删除
关闭
关闭