上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 25 下一页
摘要: 本来是个很简单的题目,难住我的主要是这么几点1.它所有的点都是坐标,不是实际的砖块,1,3指的是1-2 2-3的砖块。。。后来就是用1 代表1-2 ,2代表2-3.。。。。,这样的话,每次读入的数据,都把r--就行,然后在实际的砖块数就是 x[r+1]-x[l]。2.我动手太快,没想清楚它是叠层型,即每次读入砖块坐标,都是往原有砖块的基础上++,这样的话,懒惰标记,就也一定是每次++,这里我WA了好久,一开始没想清楚,没按叠层来更新懒惰标记。。3.有个地方超级难以想到,就是在最后query木板能承载多少砖块的时候,用个flag标记好已经完全清空的node,因为询问有多次,下次再遇到这个node 阅读全文
posted @ 2013-11-12 11:58 KRisen 阅读(429) 评论(1) 推荐(0)
摘要: 给这个题目跪了两天了,想吐简直发现自己离散化没学好包括前一个离散化的题目,实际上是错了,我看了sha崽的博客后才知道,POJ那题简直数据弱爆了,本来随便一组就能让我WA掉的,原因在于离散化的时候,缩小数据规模的同时,没有考虑到误差,比如 1 4 6 8,离散化之后是1 2 3 4,我如果覆盖了1 2和3 4,表面上好像全部覆盖了,实际数据并没有覆盖。。所以我只能说那道题目我其实错了,并没有真正做出离散化出来。。。现在用这道题来弥补。color the ball,ball的编号可以从1 到2^31,不可能开这么大线段树,但是其实测试数据只有N=2000*2组,所以必然是离散化,初始的时候,所有球 阅读全文
posted @ 2013-11-09 21:03 KRisen 阅读(445) 评论(0) 推荐(0)
摘要: 给一块最大为10^8单位宽的墙面,贴poster,每个poster都会给出数据 a,b,表示该poster将从第a单位占据到b单位,新贴的poster会覆盖旧的,最多有10^4张poster,求最后贴完,会看到几张poster (哪怕只露出一个单位,也算该poster可见);我一看这么大数据,又看了下时间限制只有1s,不科学啊,如果真的按10^8建树不可能过时间啊,而且根据它的空间限制,大概只能建10^7这么大的数组。后来搜博客发现大家的标题都写着离散化,原来用离散化做这个题目,但是我不会离散化,我想找一篇纯讲离散化的博文来好好研究下,。。。没找到,所以原谅我,这个题目是仔仔细细的分析了别人的 阅读全文
posted @ 2013-11-06 16:57 KRisen 阅读(510) 评论(0) 推荐(0)
摘要: 题目大意:给定一个n个节点的树,1是信号发射塔,1到n-m是中继发射塔,n-m+1 到n是用户,每个用户都会交钱,任意两个节点传输信号都是需要钱的,每个用户最多上交的钱已给定,问在不亏本的情况下,最多有多少用户。初看题目,研究了下样例,发现每个用户上交的钱在满足自身需求同时还有可能用到其他线路上。所以我一开始的DP方法是这样打算的,记录下所有用户上交的总钱数 sum,用dp[rt][j]表示以rt为根的树,在分配了j这么多钱之后,最多能有几个用户,写着写着发现不对劲,这样是初始就认为有sum的钱,然后把sum的钱统一分配,明显错了,因为能收到用户的钱,前提是一定要接通它这条线路,。。又试想了改 阅读全文
posted @ 2013-11-05 23:12 KRisen 阅读(252) 评论(0) 推荐(0)
摘要: 题意:输入N,P,求一棵N个节点的树最多砍多少次边,能得到一个节点数为P的树。这个题目还真是一时间考住我了,我怎么都没想通怎么DP,甚至后来没办法去找博客看了一下,还是觉得无法理解。今天上午,翘着水课来刷题,总算是弄懂了。用dp[rt][j]表示在以rt为根节点的树上,要保留j个节点,(每次j从p递减到1)需要的最小割边数,首先我们来考虑边界,如果是叶子,则dp[rt][1]=0是显而易见的,除此外,它无法构成任何其他数目节点的树,所以dp[rt][i](i为除1外的数)全部置为INF,以此来表示不存在。dp[rt][j]=min(dp[rt][j]+1,dp[rt][j-k]+dp[nx][ 阅读全文
posted @ 2013-11-04 11:48 KRisen 阅读(335) 评论(0) 推荐(0)
摘要: 题意:给一棵树,每个节点都有一个权值,权值只能拿一次,只让走K步,问最多能拿到多少权值这个题目一开始没料到原来可以往回走,分析了样例才知道。之后我用DFS搜索,超时后来一直想树形DP的状态转移,一直没想出来。后来还是看别人博客上的状态转移方程。dp[0][rt][j+2]=max(本身,dp[0][rt][w]+dp[0][nx][j-w])//w为枚举的需要多少步,由于要从nx子节点返回,故需要比j多两步dp[1][rt][j+2]=max(本身,dp[1][rt][w]+dp[0][nx][j-w])//走向子树后回来再一去不回,因为从子树回来需要多走两步dp[1][rt][j+1]=ma 阅读全文
posted @ 2013-11-03 14:15 KRisen 阅读(159) 评论(0) 推荐(0)
摘要: 题意:就是相当于动规里面的求最大连续子串,不同的是,这里需要读入一个区间x,y,输出的区间 a,b 且x#include #include #define Lson x=s[tree[x=s[r]-s[tree[x=v2){ tree[x].vx=tree[xs[tree[x].vy]-s[tree[x].vx-1]){ tree[x].vx=tree[xmid){ return query(st,e,Rson); } if (e=s[b.vy]-s[b.vx-1]){ c.vx=a.vx; c.vy=a.vy;... 阅读全文
posted @ 2013-11-02 10:09 KRisen 阅读(569) 评论(0) 推荐(0)
摘要: Cell Phone NetworkTime Limit:1000MSMemory Limit:65536KTotal Submissions:5325Accepted:1886DescriptionFarmer John has decided to give each of his cows a cell phone in hopes to encourage their social interaction. This, however, requires him to set up cell phone towers on hisN(1 ≤N≤ 10,000) pastures (co 阅读全文
posted @ 2013-10-23 09:52 KRisen 阅读(223) 评论(0) 推荐(0)
摘要: 最近小伙伴们省赛打得超级棒,4个队全是省一,还有陶神他们已经开赴成都参加区域赛,好羡慕啊。 第一次做树形DP,经历之前DP题目的磨练,觉得思路很简单 我首次尝试用MAP做,但是思路出了点问题,由于我之前是想对一个结构体数组进行维护,在结构体里面保存了老板的下属,但这样的话我就用的指针去访问数据,还用 阅读全文
posted @ 2013-10-19 14:51 KRisen 阅读(417) 评论(2) 推荐(0)
摘要: 最近做DP题目,发现无论是LCS,还是有些题目涉及将动态规划的路径打印出来,而且有时候还要按格式输出,这个时候,记忆化搜索显得尤其重要,确实,记忆化搜索使用优化版本的动态规划,用起来思路清晰,非常方便这个题目就是一个n*n的图里,从起点出发,只能横向或者纵向走最多k步,而且每次下个点都要比当前点的值要高,这样最终走完获得的总点权值最大是多少明显的是一BFS 或者DFS,当然,我们稍微优化下,用记忆化搜索,就会成为很优化版本的DFS。所以从代码看,这样的记忆化搜索,其实是从起点出发,但是最终要搜到最后一点,然后层层返回,此时,每个得到了返回值的点都已经是最优点了,所以下次再搜到这个点直接返回,这 阅读全文
posted @ 2013-10-15 12:04 KRisen 阅读(393) 评论(0) 推荐(0)
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 25 下一页