- 博客(5)
- 收藏
- 关注
原创 [离散+二分]HDU4400 Mines
题意:给n个平面上的炸弹,每个炸弹有一个爆炸范围d,爆炸的时候会引爆d范围内的炸弹(注意距离为曼哈顿距离),这些炸弹可以又炸其他炸弹。然后m次询问,每次引爆编号num的炸弹,输出爆炸的次数,如果已经炸过了就输出0。 因为是平面点,我用了以y升序的mulitset,内部是有序的,就不用再去排序了,而且自带上下二分函数。STL大法好啊。 离散的过程是,x相同的就压入同一个Mset,不同的以x的升序
2015-05-27 14:01:16 737
原创 [线段树]HDU4893 Wow! Such Sequence!
题意:一个序列n个数初始为0,m次操作。操作1,把第k个加上d;操作2,对l到r的结点求和;操作3,把l到r的结点变成最近的斐波那契数,如果到左右的斐波数相同就选小的那个。 这题真是坑了好久了啊。 第一次用的树状数组做,因为是单点增减区间求和,而变成斐波那契数的操作显然必须对叶子结点操作,然后更新上去,超时果断的。 其实如果一段区间之前做了3操作,而之后这个区间没有做过1操作,再做3操作是可
2015-05-26 10:29:20 520
原创 [逆向拓扑排序]POJ3687 Labeling Balls
看了几页书上的网络流感觉不想看了,找了前面几章的题目打算水一水练手,结果碰上这个题也是很囧。 一开始做是正向,从轻到重建边,记录入度,搞优先队列让小序号的先出队,同时搞一个普通队列把每次选的入度为0的点记录下来,结果一发WA。 后来仔细看了看题目,结果要输出的是结点的标号。 比如最开始第一个选的入度为0的点是5,那么我的第一个答案就是5了,其实题目不是这个意思,第一个答案应该是1第几个被选出
2015-05-25 17:10:14 694
原创 [漂浮法]POJ2528 Mayor's posters
当初这题用线段树搞爆,离散化然后建树搞搞搞,辛苦AC。 其实这题用漂浮有奇效,不用离散,而且是线段,覆盖写起来简单。 想法很简单,贴在下面的海报就放在下面,然后从下网上浮,遇到其他的海报就断成一截或两截继续上浮。 还有个问题,这题的坐标表示的不是端点,而是一小段。 比如有两张海报,1 3和4 6,那么其实1到6都是被覆盖了的。 所以截断海报的时候加减一处理边界。 用DFS实现。
2015-05-21 14:14:41 712
原创 [漂浮法]CSU1589 Shaping Regions
漂浮法主要用于解决一类矩形线段覆盖问题,比如求覆盖后的面积,可见数量等,可以水过一些扫描线题,而且比较好写。 原理类比把矩形按照顺序从底到顶的放进水里,然后让下面的依次上浮,过程中如果被其他矩形挡住就分裂成几个矩形继续上浮,最后到顶的就是这个矩形最后可以看见的部分。 过程用DFS实现。 具体看代码。 最坏复杂度O(n^2),但是常数小,配合2个剪枝,在OJ跑8ms,和扫描线时间差不多,
2015-05-21 13:17:01 589
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人