[置顶] GDOI2017旅游记

DAY 0上车睡觉,因为颓废颓到头痛。 晚上也是颓废,我随便推了一下减rp的gal。 板子没看就睡觉了。DAY 1看题。 t1好迷,跳。 t2好长,翻到加粗好像看懂了,一看输入格式又开始怀疑。然后成为和题面软磨硬泡的选手。最后感受到出题人深深的恶意。好像不是很会,先跳。 t3没看懂,先跳。 t4吓坏了,跳。 回去看t1,好像可以模拟题意。那要用个判断匹配的算法,当时的模型是要判断以A串...
阅读(498) 评论(3)

[置顶] [WerKeyTom_FTD的模拟赛]Sone0

题目描述有一颗n个节点的树,每个节点有编号与权值。有m次操作,每种操作都有独特的编号。 编号为1的操作,会切断当前树上存在的一条边,并新加一条边,保证操作完成后仍然是树。 编号为2的操作,会改变这颗树的根节点(初始根节点为1)。 编号为3的操作,会给树上一条路径上所有点的权值都增加x。 编号为4的操作,会对树上一条路径上点的权值信息进行轮换,如果是对j到k这条路径操作,从j走...
阅读(501) 评论(5)

[置顶] [一直更新中]WerKeyTom的口胡

前言因为要保证能力的提升,不能啥题都是写写。 所以开一个口胡题解坑。 可能以后有心情和能力也会来写一写收录的题。 至少留下一个思考过的痕迹。 实在太水可能就不口胡啦。 有些题也会写写。2017.3.13bzoj3679 计算可以被分解成1~9的乘积且在1e9内的数只有5194个 然后可以数位dpbzoj3756 直接给Trie建SAM是伪的。 这个伪指的是深搜建。 允许离线用宽...
阅读(747) 评论(0)

[置顶] [一直更新中]各种计划

RT...
阅读(836) 评论(0)

[置顶] 关于我

高一蒟蒻的破介绍...
阅读(1105) 评论(3)

[置顶] [一直更新中]错误及好东西

犯错合集及需要注意的东西1、在一个地图求最大面积的类问题中,要注意障碍结点的影响。 2、ll(),表示的是在运算后把括号内强制转化为类型ll,而(ll)表示后面的每个玩意都强制转化为类型ll。在做历史研究这道题时我WA就是因为我用的是ll()而不是(ll)。 3、splay每次splay操作后一定要记得更新root! 4、可以使用树状数组就尽量不要使用线段树。在Gty的文艺妹子序列这道题本机测...
阅读(1143) 评论(5)

归并排序

题目大意给一个长度为2的次幂的排列做归并排序,在区间长度为2时比较器会变成随机返回值。 多次操作,每次要么交换两个位置,要么询问归并排序后第x个位置等于排序前第y个位置的概率。做法容易发现,如果x#include #include #define fo(i,a,b) for(i=a;i=...
阅读(10) 评论(0)

摧毁图状树

题目大意Q次询问,每次给一个k。 将树用尽量少的长度不超过k的祖先后代链覆盖,使得每个点至少覆盖一次。贪心对偶成选择尽量多的点,使得任意长度不超过k的祖先后代链上至多一个点被选择。 这样转化则贪心很显然。尽量选深度大的点。 如果有t个叶子,选取的点至多为t+(n-t)/k。 因为叶子一定会被选择,同样删去所有被选择的点后,每个联通块大小不会小于k(否则一定在原来的树中存在长度不超过k的祖先后...
阅读(11) 评论(0)

[bzoj4849]Mole Tunnels

题目描述鼹鼠们在底下开凿了n个洞,由n-1条隧道连接,对于任意的i>1,第i个洞都会和第i/2(取下整)个洞间有一条隧 道,第i个洞内还有ci个食物能供最多ci只鼹鼠吃。一共有m只鼹鼠,第i只鼹鼠住在第pi个洞内,一天早晨,前k只 鼹鼠醒来了,而后n-k只鼹鼠均在睡觉,前k只鼹鼠就开始觅食,最终他们都会到达某一个洞,使得所有洞的ci均大 于等于该洞内醒着的鼹鼠个数,而且要求鼹鼠行动路径总长度最...
阅读(29) 评论(0)

[JZOJ100020]B

题目大意有多少n*n的01矩阵每行每列恰有2个1。推式子设a(n)表示答案。 每次新加一行一列,你找到一行,把最后一行和它换,并在最后一列这行的位置写上1。 然后再找一行,在最后一列这写1,并找到之前一个位置的1把它翻到只有一个1的那行。 这样是n*(n-1)*a(n-1)。 你发现有种情况翻不上去,于是你枚举哪里翻不上,然后去掉那两列,这样是n*(n-1)^2*a(n-2)。#includ...
阅读(23) 评论(0)

[JZOJ100019]A

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

[hihocoder1527]快速乘法

题目描述在写代码时,我们经常要用到类似 x × a 这样的语句( a 是常数)。众所周知,计算机进行乘法运算是非常慢的,所以我们需要用一些加法、减法和左移的组合来实现乘一个常数这个操作。具体来讲, 我们要把 x × a 替换成:(x<<a0)op1(x<<a1)op2(x<<a2)...opn(x<<an)(x<<a0) op1 (x<<a1) op2 (x<<a2) ... opn (x<<an)...
阅读(53) 评论(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])之和。做法显然只需要对每个位置i求出前面多少子序列异或和比再异或它之后小即可,后面部分乘一个2的次幂。 假如a<b...
阅读(39) 评论(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)dg_n=\Pi_{d|n}f_d^{\mu(\frac{n}{d})} 接下来我们知道求lcm可以转化...
阅读(16) 评论(0)

回转寿司

题目描述分块你考虑有一堆人,价格为x的进去了出来会变成啥样。 那么肯定是找到这堆人所持价格的最大值y,如果x>y,出来的还是y,否则x会变成某个人手里的,然后出来的是y。 我们考虑分块,每个块维护一个数堆。 如果x要经过一个块,可以丢进数堆,再取出一个最大值。然后还要给这个块打上一个标记。 但是对于零散的不是很好做,即重构块,我们如何快速得到每个位置经过一系列标记后的值? 注意这个问题具有...
阅读(15) 评论(0)

三明治

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

电报

题目大意n个点,每个点出度均为1的有向图。 你可以将j->k改成j->l,代价为c[j]。 求最小代价,使得有向图变成一个环。贪心我们把问题描述成删去若干条边,删除每条边都有代价,最小代价使得每个联通块都是一条链(这样才能连成环)。 假如一个点有k个入度,至少k-1个要被删掉。 对于树的情况贪心保留最大代价的入边。 环上至少一条边要删去,再讨论一下即可。 注意特判初始所有点连成一个环的情...
阅读(29) 评论(0)

没有上司的舞会

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

最小生成树

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

字符串游戏

题目大意题解瞎猜想和画图得到一个不好说的结论。 用诡异的单调栈做。#include #include #define fo(i,a,b) for(i=a;i=b;i--) using namespace std; const int maxn=1000000+10; char a[max...
阅读(17) 评论(0)

[LOJ6087]毒瘤题

题目大意找到k个出现次数为奇数的数,保证只有k个数出现奇数次。做法k=1全部异或起来。 k=2保存一个c[i]表示第i位上是1的数的异或和。 得到a^b,找到最高位k,那么c[k]是其中一个,然后能得到另一个。#include #include #define fo(i,a,b) for(i=a;i<=b;i++) using namespace std;...
阅读(29) 评论(0)
659条 共44页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:166474次
    • 积分:8319
    • 等级:
    • 排名:第2201名
    • 原创:647篇
    • 转载:5篇
    • 译文:0篇
    • 评论:159条
    公告
    幻梦终醒,本无不散之宴,却不悔付此华年。
    最新评论
    文章分类