- 博客(5)
- 收藏
- 关注
原创 2015多校第一场1008 hdu 5295 Unstable
题意:给定AB,BC,CD,DA距离,已经AB的中点E,CD的中点F的距离EF。给出一个合法的A,B,C,D坐标。做法:和题解一样。首先其中B,C两个点的坐标可以自己定,不妨设C为(0,0),B为(BC,0),然后从A点过F作A'令AF=A'F,由于对顶三角形的原因,A'C=AD。由于相似三角形的原因A'B=2*EF,已知两点坐标和三边长,可以求出A'的坐标。然后作点G,令向量GB=向量A'C
2015-07-29 20:45:17 638
原创 2015多校第一场1006 hdu 5293 Tree chain problem
题意:给定一棵树,然后在给定一些链,链放在树上某条路径上,每条链有价值,要求取链,并且所取的链不能相交,使得取得的链的总价值最大。做法:树上做动态规划,开个dp[i]表示第i个点为根的子树里面的取链最大价值,sum[i]表示i的儿子节点的dp值得和。考虑取一条链时,把一条链的路径上的所有sum[i]-dp[i]加起来(lca那点只需把sum[i]加进去就好了)再加上这条链的价值,这样做的目的是
2015-07-29 17:49:12 433
原创 2015多校第一场1004 hdu 5291 Candy Distribution
题意:有n类糖果,每类有a[i]种,给两个人分配等量的糖果(不必分完),问有多少种分发。做法:首先很容易想到一个二维dp,dp[i][j]表示在分完第i类糖果的时候,第一个人比第二个人多j个糖果,转移就是枚举分下一类糖果时,第1个人比第2个人多分到几个。这样子直接做的复杂度是200^4左右,显然过不了。然后观察一下:会发现一件事情,假如当前j=100,我要分的这一类糖果有4个,那么,d
2015-07-29 12:56:09 423
原创 2015多校第一场1003 hdu 5290 Bombing plan
题意:给定一颗树,每个节点都有个权值w,然后炸一个节点的话会把距离该节点的距离小于等于w的点全毁掉,问毁掉整棵树要多久?做法:如题解所言,开2个2维的数组,f[i][j]表示对于第i个点,在它以下的点全部炸毁,并且威力向上延伸j个距离的最少所需炸点数量。g[i][j]表示对于i点,下面有点未被炸毁,并且距离最远的点的距离为j的最小所需炸点数量。在不炸i点的情况下。g[i][j]=∑g[l]
2015-07-28 21:02:33 458
原创 ZOJ Monthly, July 2015 K-hash 后缀数组去重做法
题意:意思有一个数字串,然后问子串构成的数字,有几个模k为0,1,2...k-1的。然后要求数字不能重复,也不能有前导零做法:先不考虑0的问题。(1)首先o(32n)计算出所有的模k为0,1,2...k-1的子串有几个。此时不考虑重复。即每次计算出到第i位位置,每种串有多少个。然后把第i个位置插进去就能算了。(2)然后利用后缀数组去重。如果height[
2015-07-27 12:05:24 995
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人