上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 42 下一页
摘要: bzoj2563阿狸和桃子的游戏 题意: 一个n(偶数)点图,节点权值为w(v),边权为c(e)。两人轮流将图中的顶点染色,已经被染过色的点不能再染了,而且每一轮都必须给一个且仅一个顶点染色。染完后每个人的分数为染过的点权和以及两个端点都被染的边权和。如果两人都是采用最优策略的,求最终第一个人的分数 阅读全文
posted @ 2016-07-24 17:01 YuanZiming 阅读(276) 评论(0) 推荐(0)
摘要: bzoj3673可持久化并查集 by zky 题意: 维护可以恢复到第k次操作后的并查集。 题解: 用可持久化线段树维护并查集的fa数组和秩(在并查集里的深度),不能路径压缩所以用按秩启发式合并,可以使合并均摊复杂度为O(nlog2n)。可持久化线段树实际上就是在更新节点时按主席树的插入方式新建一条 阅读全文
posted @ 2016-07-24 16:56 YuanZiming 阅读(254) 评论(0) 推荐(0)
摘要: bzoj3156防御准备 题意: n个检查点,在第i个检查点放置塔花费a[i],放置木偶花费为该位置右边最近一个塔离它的距离。求最小花费。n≤1000000 题解: 从右往左处理。在第i个点放塔的费用f[i]=min{f[j]+sigma(k,i+1,j-1)k-i}+a[i],用等差数列求和公式化 阅读全文
posted @ 2016-07-24 16:46 YuanZiming 阅读(217) 评论(0) 推荐(0)
摘要: bzoj2588 Spoj 10628. Count on a tree 题意: n点树,m个询问求点u到点v路径上第k小的点权。强制在线。n,m≤100000 题解: 用主席树维护某节点到根节点的权值数量sz,建树过程可以由父亲节点递推。询问就用倍增求出lca,然后路径上的sz值就为sz[u]-s 阅读全文
posted @ 2016-07-24 16:40 YuanZiming 阅读(242) 评论(0) 推荐(0)
摘要: bzoj1030[JSOI2007]文本生成器 题意: 给出一个字典和一个长度,要求有多少个这个长度的字符串里含有子串为字典里的单词。字符串和字典里的字符都为大写字母。单词数≤60,字符串及单词长度≤100。 题解: 在AC自动机上跑dp,求不含字典单词的个数,再用总个数减。f[i][j]表示当前处 阅读全文
posted @ 2016-07-24 16:37 YuanZiming 阅读(210) 评论(0) 推荐(0)
摘要: bzoj1269[AHOI2006]文本编辑器editor 题意: 维护一个字符串,支持插入,删除,翻转操作。 题解: C++有个库里面有个容器叫rope,可以实现可持久化平衡树,然而本题只要它的插入、删除、截取字符串功能就行了,翻转怎么办?维护一个倒序的rope即可。 代码: 20160620 阅读全文
posted @ 2016-07-24 16:34 YuanZiming 阅读(342) 评论(0) 推荐(0)
摘要: bzoj3172[Tjoi2013]单词 题意: 某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。注意论文中单词之间是有分隔的。单词数≤200,长度≤1000000 题解: 先将每个单词插入trie,经过的节点的sum[i]++, 阅读全文
posted @ 2016-07-24 16:31 YuanZiming 阅读(495) 评论(0) 推荐(0)
摘要: bzoj4631踩气球 题意: 有一个序列和一个区间集合,每次将序列中的一个数-1,求此时集合里有多少个区间和为0。序列大小≤100000,区间数≤100000,操作数≤100000。 题解: 此题解法其实并不难,对序列建线段树,用线段树每个节点维护区间和及覆盖该区间的集合内的区间的链表,同时记录每 阅读全文
posted @ 2016-07-23 21:03 YuanZiming 阅读(319) 评论(0) 推荐(0)
摘要: bzoj1927[Sdoi2010]星际竞速 题意: 赛车大赛的赛场由N颗行星和M条双向星际航路构成,其中每颗行星都有一个不同的引力值。大赛要求车手们从一颗与这N颗行星之间没有任何航路的天体出发,访问这N颗行星每颗恰好一次。赛车超能电驴在高速航行模式下,沿星际航路航行,但只能由每个星球飞往引力比它大 阅读全文
posted @ 2016-07-23 13:15 YuanZiming 阅读(196) 评论(0) 推荐(0)
摘要: bzoj1047[HAOI2007]理想的正方形 题意: 有一个a*b的整数组成的矩阵,求一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小。a,b≤1000,n≤100 题解: 做4次单调队列。先利用单调队列求出第i行第j列到第i行第j+n-1列的最大最小值,再利用这个求出第i行第 阅读全文
posted @ 2016-07-23 13:11 YuanZiming 阅读(297) 评论(0) 推荐(0)
上一页 1 ··· 31 32 33 34 35 36 37 38 39 ··· 42 下一页