- 博客(7)
- 收藏
- 关注
原创 [树链剖分] HDU 5893 List wants to travel
List wants to travel题意:给一棵树,每条边有个颜色,两种操作:Change a b c,把a到b的简单路径的边颜色变成cQuery a b,查询a到b的简单路径有多少段颜色,连续相邻的同色边算一段。思路:先建立树剖然后用线段树维护,记录一个区间内的颜色段数,最左颜色和最右颜色,然后就可以区间合并了,需要注意合并的顺序,没想清楚很容易就wa了,我想的是总是按查询的时间顺序把区
2016-09-20 19:52:13 525
原创 [AC自动机+期望DP] 玲珑ACM 1025 - Magic boy Bi Luo with his excited string problem
Magic boy Bi Luo with his excited string problem题意:给出<=15个字母串,每个串不超过10个字符,然后一个人开始写字母,每次随机写一个字母,直到出现给出的任意一个串,然后就停止,问写的长度的期望,答案mod 1e9+7。思路:总共150个字母比较少,用ac自动机建立转移矩阵,dp[i]dp[i]表示从状态i出发写的期望,然后套高斯消元解方程。 每个
2016-09-17 10:21:16 496
原创 [burnside引理] HDU5868 Different Circle Permutation
Different Circle Permutation题意:n个球围成一个圈,每个球是白色或黑色,要求不能有连续的黑球相邻,并且旋转同构,求有多少种合法方案。思路:设不考虑旋转同构时,nn个球的方案为f(n)f(n),手算下f(2)=3,f(3)=4,f(4)=7f(5)=11f(2)=3,f(3)=4,f(4)=7f(5)=11,好像有点f(n)=f(n−1)+f(n−2)f(n)=f(n-1)
2016-09-15 18:56:19 797
原创 [后缀自动机] HDU5558 Alice's Classified Message
Alice’s Classified Message题意:给一个串s,给一个加密过程,输出密文,过程如下: 初始i = 0,重复下面直到串结束。 找一个子串,第一个字符位于[0,i),而且该子串要和以i开头的相同长度的串相等,多个合法的取最长的,如果还有多个取最左边的,设该字串长度为k。 如果不存在,输出 -1和s[i]的ascii值,i增加1。 否则输出长度k和第一个字符的位置T,i增加k
2016-09-11 20:17:41 596
原创 [树上背包] POJ2486 Apple Tree
Apple Tree题意:一棵树n(<=100)个节点,每个节点有a[i]个苹果,从1出发走k(<=200)步,问最多能得到多少个苹果。思路:首先想到每个节点只有3种情况,要么不经过,要么经过了最后回来,要么经过了最后不回来,只用关心后两种就行。 于是可以想到一个dp[i][j][k],表示从i出发走j步,k=0表示回来,k=1表示不回来,现在想怎么转移。 转移的关键是每个子节点走多少步,暴力枚
2016-09-09 15:11:57 1221
原创 [dsu] CSU1811: Tree Intersection
1811: Tree Intersection题意:给一棵树,每个节点有种颜色,考虑第ii条边(ai,bi)(a_i, b_i),把这条边去掉后,分成两颗树,问两颗树节点的颜色集合的交集。题解:如果对每棵子树暴力,显然是O(n2)O(n^2)的,但可以发现子树的信息有一部分父亲节点可以复用,保留这一部分信息就成了O(nlogn)O(nlogn),也就是保存重儿子的信息。//// main.cpp
2016-09-05 19:23:11 981
原创 [上下界最小流] SGU 176. Flow construction
176. Flow construction题意:从1到n的一个网络,每个边有上下界,求最小流。思路:属于有源汇上下界的最小流问题,总结下。原网络每条边的容量为CMax−CMinC_{Max}-C_{Min},同时记录每个点的下界流量,流入为正,流出为负,记为flow[i]flow[i]。建立每个点和ssss及tttt之间的边,若flow[i]>0flow[i]>0,连接ssss和ii,容量为f
2016-09-02 16:11:29 474
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人