自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 HDU 4456 Crowd

去年区域赛留下来的遗憾题之一。此题要考的是坐标转换后的二维树状数组,难点在于内存开不下,需要20000*20000,现场赛胆大的直接开了这么大就过了,向我们这种胆小的就直接被吓傻了。hdu上内存32768K。由树状数组的性质可知每次最多只会更新log(n)次,因此二维树状数组总共会更新m * log(n)*log(n)个地方,所以想办法存这些值就可以了,map会超时,搞个靠谱点的has

2013-09-03 21:29:55 873

原创 CF 338E Optimize!

题意:给一个串a,长度为n,一个串b长度为len, 问a有多少个长度为len的子串满足:和b任意匹配后,每一对值的和都大于等于h。把b从大到小排序,对a里面的元素求出和b[i]相加大于等于h的最大的i , 这样b[1]~b[i]都满足和当前a里的元素相加大于等于h。然后分别求出a中每一段长度为len的子串里:有多少要和b[1],b[2],......,b[len]之前匹配,记为c[

2013-08-18 20:33:43 909

原创 两题类似的数位DP

CF 331C3 - The Great Julya Calendar (60 points)SGU 390 TICKETSdfs写法的数位dp最牛的地方是:只要考虑状态怎么变,边界情况搞搞好然后就能AC。这两题都是一段区间会对下一段区间有影响的数位DP,这个影响就用pair来记录,其他无脑写。CF 331C3#pragma comment(linker, "/ST

2013-08-17 21:07:31 907

原创 HDU 4684 The Budget of Traveler

题意:在树上做斜率优化 (题意是不是太浓缩了= =)以前感觉毫无想法,必须写下blog加深印象。dp[i] = dp[j] + (sum[i]-sum[j])*p[i] + r[i]; 转移方程,其中j是i的祖先。斜率优化要维护队头和队尾,在树上怎么搞呢? 把树链想成队列,开个fa[]数组记录在每个节点在队列里的前一个元素,更新队尾只要把当前节点的fa设为设为相应的值,更新队头没有办法

2013-08-17 10:43:50 1153

原创 SRM 475 DIV1 900

题意:一场考试。一些题目结果已经出来,对于j题每个人能知道自己是否做对,做对得到points[j]分,做错0分。令一些结果还未出来的题目,对于j题知道每个人是否提交,提交了就有机会得到points[j]分,否则必然的到0分。然后对于成绩排在前p的人中(分数相同按照id,id小的排前面),随机选择q个,问方案数。给这DP跪,完全没思路,然后看了一眼别人的dp状态,yy乱搞,结

2013-08-12 15:38:24 798

原创 SRM 477 DIV1 1000

题意:给定一颗树,这棵树上you

2013-08-12 15:02:08 701

原创 TopCoder SRM 474 DIV1 1000

题意:把一颗树对应到一张无向图上有多少种方案,即满足树上两点之间有边,那图上对应的两点之间也有边的方案。N只要想到这是树型dp,这提就不难,状态为dp[i][j][mask],表示到树上节点为i对应图上节点为j时它及子树已经用过图上节点mask的方案数。mask是状态压缩。转移的时候尽量优化,否则会tle。#include #include #include #i

2013-08-12 14:33:45 826

原创 POJ 3415 Common Substrings

题意:求两个串中相同的长度大于K的子串对数。两个串链接起来做后缀数组。假设height数组为:  0 2 1 4 3 2 4 0 0 0 1 0 0 10表示是第一个串的后缀,1表示是第二个串的后缀。如果现在求第7个后缀,能与之前第一个串的后缀得到多少的长度大于k的子串对数。可以发现[1,2]区间的后缀和第7个后缀最长匹配都为1,[3,5]区间的后缀最长匹配为2

2013-08-11 14:31:12 809

原创 HDU 4654 k-edge connected components

题意:求一个无向图中,k联通分量的个数。迭代过程:用Stoer_Wagner求出当前全局最小割,判断是否大于k,是就返回,不是就按割边把图分成两个部分继续迭代。用Soter_Wagner按最小割把图分为两部分的方法:此算法一直把点合并,当合并到某一状态时,当前最小割被更新了,那么对于当前最小割 ,"prim"时最后加入的那个点及和他合并的点就是一部分,剩余的点就是另一部分,得到

2013-08-07 12:44:13 929

原创 后缀自动机

先挖坑,做完再上题解hdu 4622hdu 4641hdu 2609spoj NSUBSTRspoj SUBLEXspoj LCSspoj LCS2

2013-08-06 09:47:28 1238

原创 Codeforces 316G3 Good Substrings (30 points)

题意:给一个长为50000的字符串t,还有10个约束(p,l,r), 当某一字符串s在p中出现的次数大于等于l,小于等于r时满足约束,问t有多少个不同的子串满足所有约束。先考虑t的子串的性质:t 的长度为len假设以 x 为起点的子串,终点在[l,len]范围内时满足所有约束条件中的小于部分。那么对于以x+1为起点的子串,终点在[l1,len]范围内时满足所有约束条件中的小

2013-07-30 23:00:11 1116

原创 URAL 1956 Fire Signals

题意:求一条直线满足,所有平面上点到这条直线的距离之和最小,点数n经过长时间的YY,得出经过平面上的两个点的直线包含最优解。可以由  dis = |a*x+b*y+c|/sqrt(a*a+b*b) 得到。因为在直线一侧的点 dis 的正负号是相同的,可以利用这一点。先枚举一点,另外的点按到这点的角度排序,然后扫描枚举另一点,维护两边的点的x之和,y之和,用abs(sum

2013-07-24 13:21:20 983

原创 A Contest to Celebrate Girlfriend's Birthday by Staginner

先挖坑

2013-07-16 22:25:47 686

原创 Codeforces MemSQL start[c]up Round 1

ASquare and Rectangles题意:给定5个不重叠的长方形,问是否组合成一个正方形。x,y范围10^5先得到x,y的最大最小值然后在这个范围内枚举 x ,判断每一个x的位置y是否完全覆盖,由于不相交,直接把包含这个x的长方形的y差值相加,判断是否和y最大值和最小值的差值相等。trick: 漏判 x和y最大值和最小值的差值是否相等。

2013-07-15 19:35:12 889

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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