自定义博客皮肤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 839

原创 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 877

原创 两题类似的数位DP

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

2013-08-17 21:07:31 862

原创 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 1119

原创 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 735

原创 SRM 477 DIV1 1000

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

2013-08-12 15:02:08 654

原创 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 790

原创 POJ 3415 Common Substrings

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

2013-08-11 14:31:12 788

原创 HDU 4654 k-edge connected components

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

2013-08-07 12:44:13 871

原创 后缀自动机

先挖坑,做完再上题解 hdu 4622 hdu 4641 hdu 2609 spoj NSUBSTR spoj SUBLEX spoj LCS spoj LCS2

2013-08-06 09:47:28 1203

原创 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 1076

原创 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 954

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

先挖坑

2013-07-16 22:25:47 660

原创 Codeforces MemSQL start[c]up Round 1

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

2013-07-15 19:35:12 860

空空如也

空空如也

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

TA关注的人

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