题意:给出n个矩形,求矩形中被覆盖K次以上的面积的和。解法:整体与求矩形面积并差不多,不过在更新pushup改变len的时候,要有一层循环,来更新tree[rt].len[i],其中tree[rt].len[i]表示覆盖次数大于等于i的线段长度,以便求面积,最后只要每次都用tree[1].len[K...
分类:
其他好文 时间:
2014-08-28 11:08:19
阅读次数:
315
题目链接:uva 1493 - Draw a Mess
题目大意:给定一个矩形范围,有四种上色方式,后面上色回将前面的颜色覆盖,最后问9种颜色各占多少的区域。
解题思路:用并查集维护每个位置对应下一个可以上色的位置。然后将上色倒转过来处理,就解决了颜色覆盖的问题。
#include
#include
#include
#include
#include
using nam...
分类:
其他好文 时间:
2014-08-28 00:56:18
阅读次数:
276
题意:m行n列的矩形网格放k个相同的石子,要求第一行最后一行第一列最后一列都必须有石子,问有多少种放法A为第一行没有石子的方案数,BCD依此类推,全集为S如果没有任何要求的话,放法数应该是C(rc, k)解法中利用容斥原理来解所求的方案就是在S中但不在ABCD中任何一个的方案即:S -|A∪B∪C∪...
分类:
其他好文 时间:
2014-08-27 23:15:08
阅读次数:
278
publicvoid getHitRect(Rect outRect) Added in API level 1 Hit rectangle in parent's coordinates:找到控件占据的矩形区域的矩形坐标ParametersoutRect: The hit recta...
分类:
其他好文 时间:
2014-08-27 20:22:18
阅读次数:
190
题目链接:uva 11983 - Weird Advertisement
题目大意:给定n个矩形,问说有多少区域的面积被覆盖k次以上。
解题思路:将每个矩形差分成两条线段,一段为添加覆盖值1,一段为减少覆盖值1,同时记录两段的高度(横坐标)。然后对纵坐标离散化建立线段树,然后对线段按照高度排序,维护整段区间中覆盖度大于K的长度,乘上高度上的范围即可。
#include
#inclu...
分类:
其他好文 时间:
2014-08-27 18:52:48
阅读次数:
280
题目链接:uva 1492 - Adding New Machine
题目大意:在一个R?C矩阵上有N台旧的机器,给定每个机器的占地,现在要添加一台1?M的机器,问有多少种摆放方法。
解题思路:问题可以转化成矩形覆盖问题,对于每台旧的机器,假设考虑对应每个位置向右放,那么左边的M-1个位置是不能放的,以及右边界左边的M-1个位置。用线段树解决矩形覆盖,x,y坐标分别处理一次。注意M=1...
分类:
其他好文 时间:
2014-08-27 18:47:18
阅读次数:
274
你家种一年地的收成暴int!你当是《日人民报》啊!
题意:
雇佣贫农种地(所以是地主喽),每个农民带一种种子,播种在他管理矩形区域,每个单位面积种一粒,区域可能会重合,那么收成高的那粒会将其他的覆盖掉,求最终收成。
分析:
一开始想的是二维线段树set,但是看到面积有sqr(10^6),即使离散化也有sqr(3*10^4),后来想到加权的线段树扫描线求面积并,但是发现覆盖种子不好维护,后来看到别人题解标题:线段树求体积并。
把价格看成高度,那么每粒种子的高度区间就可以看成[0,price),想像一下,这些"...
分类:
其他好文 时间:
2014-08-27 16:36:28
阅读次数:
203
当我们开发过程中需要实现控件的圆角矩形或者给背景添加边框时,最佳的办法不是生成背景图片或者添加ImageView当做边界,而是利用Shape来做。
思路就是在drawable文件夹中自定义一个美化布局,代码如下
<stroke
android:width="2dp"
android:color="#DCD8D8...
分类:
移动开发 时间:
2014-08-27 14:47:38
阅读次数:
209
【唠叨】cocos2dx封装了大量OpenGL的函数,用于快速绘制基本图形,本节主要讲讲cocos2dx中的基本图形绘制的相关函数。包含:点、直线、矩形、多边形、椭圆、贝塞尔曲线。特别要感谢“孤狼”大牛,他写的“和屌丝一起学cocos2dx”正是我的启蒙教程。【致谢】http://gl.paea.cn/c..
分类:
其他好文 时间:
2014-08-27 11:11:18
阅读次数:
256
一段简单的绘制正方形的程序:
#include<gl/glut.h>
voiddisplay()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glVertex2f(-0.5,-0.5);
glVertex2f(-0.5,0.5);
glVertex2f(0.5,0.5);
glVertex2f(0.5,-0.5);
glEnd();
glFlush();
}
intmain(intarg..
分类:
其他好文 时间:
2014-08-26 19:58:47
阅读次数:
307