自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 POJ 2653

POJ 2653计算几何基础,线段相交判断。 题目大意是按顺序给出N条线段,求在最上面的线段。 那么按输入顺序逆序进行枚举线段,并枚举输入在它之后的线段是否与它相交,若无输入顺序在它之后的线段与其相交则无线段在它之上。 两线段的相交即每一线段的两个端点都位于另一线段的异侧,用叉积的乘积即可判定。 #include<vector>#include<cmath>#include<ctime>

2017-02-25 14:31:17 321

原创 九度 1497

九度 1497 面积最大全1子矩阵先预处理出每行连续1的个数,sum[i][j]表示第i行中到第j列为止的连续1的个数。for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(a[i][j]) sum[i][j]=sum[i][j-1]+a[i][j]; else s

2017-02-25 14:21:29 259

原创 30届宁波市中小学生程序设计竞赛复赛(初中组)

第4题-羊羊列队来源于宁波市程序设计竞赛复赛(初中组) 单个班级内,最优排列方案的不整齐度=(max(Ai)-min(Ai))^2,即按高度进行排序,此时应当最优(感觉是个不等式证明?)。 那么排列方案的优劣与羊的具体数量无关,与各只羊的高度无关,至于最大高度与最小高度的差值有关。让所有小羊按高度排列,此时可以将整个队列看做一条线段,我们可以在这条线段上切M-1刀,使其成为M段,为使长度平方

2017-02-24 20:18:51 1718

原创 POJ 1556

POJ 1556计算几何+最短路 题目大意是有N堵竖直的墙,每堵墙上有三扇门,分别给出每扇门上端点和下端点的坐标。求点(0,5)到(10,5)的最短距离。 枚举两个点,判断这条线段是否与墙相交,相交则这两个点无法直达,否则可以直达,求出这对点之间的距离。最后用Dijkstra求点(0,5)到(10,5)的最短距离。时间复杂度O(n^3)。#include<cmath>#include<ctim

2017-02-24 19:52:51 380

原创 POJ 1269

POJ 1269计算几何基础,叉积应用,直线判相交及交点求解。 取两条直线的方向向量做叉积,结果为0则平行。平行时,求一直线与另一直线的一端点的叉积,结果为0则不是同一条线。不平行时,x1=L[0].s.x, y1=L[0].s.y;x2=L[1].s.x, y2=L[1].s.y;x3=L[1].t.x, y3=L[1].t.y;a1=L[0].s.x-L[0].t.x, b1=L[0].

2017-02-23 19:09:29 269

原创 28届宁波市中小学生程序设计竞赛复赛(初中组)

第4题-迷宫大门来源于宁波市程序设计竞赛复赛(初中组) n≤500,000,显然对于这么大的n,O(n^2)的解法都不够。那么考虑O(n)或者O(n*lg(n))的解法,动态规划?貌似可行,但状态怎么表示?左对齐?右对齐?除此,要怎么进行转移呢,毕竟a和b的范围也相当大,即便进行hash,最多也有500,000? 继续分析发现,题目中指出,每一处对齐都只得1分,这说明在左右不可能同时对齐的情况下

2017-02-23 15:09:29 1265

原创 POJ 3304

POJ 3304计算几何基础,叉积应用 大意是给出n条线段,问是否存在一条直线使得所有线段投影到直线上后存在至少一个公共点。其实就是判断是否存在一条直线与所有线段相交。 画图稍加分析可以发现,如果存在一条直线与所有线段相交,我们可以转动这条直线与至少两个线段端点重合,也就是说,我们可以通过枚举两个端点来确定一条直线,再判断它是否与所有线段相交。 枚举端点O(n^2),判断与线段相交O(n),总

2017-02-23 14:33:36 410

原创 POJ 2318

POJ 2318计算几何基础,叉积的运用,及二分求解。 题目中保证了所有玩具都是在盒子内,并且不会位于边界上。那么利用叉积可以判断出玩具相对于某个边界的方向,逆时针则在该边界左边,顺时针则在右边。然后二分边界,不断做叉积,找出该点的具体在哪两条边界之间即可,找出具体位置后,该区域的玩具数加一。时间复杂度O(n*lg(m))。#include<cmath>#include<ctime>#incl

2017-02-22 22:06:12 235

原创 31届宁波市中小学生程序设计竞赛复赛(初中组)

第4题-猴子上树来源于宁波市程序设计竞赛复赛(初中组) n≤5000,m≤n,显然O(n^3)的复杂度不能接受,那么考虑O(n^2)或者O(n^2*lg(n))的解法。最少需要消耗多少能量,看起来是一个好像具有最优子结构的问题,那么尝试是否能用动态规划来求解。 仔细分析,可以发现最后一只猴子最优情况下肯定是爬上最后一棵树,那么这样就存在了重复子问题,动态规划无疑了。 考虑状态的表示,我们用

2017-02-22 13:28:08 1411 1

原创 Codeforces 733D Kostya the Sculptor

题目大意:有n个长方体石块,从中挑选不超过两块来雕刻一个球。要使球的半径最大,输出要选几个石块,以及选择的石块的编号。可以选择两个石块,用胶水把他们粘合。但两个石块的粘合面必须相同,完全吻合。简单分析可知,球的半径取决于长方体的最小维度。那么我们粘合两个石块时需要粘合的显然是非最小的维度组成的那个面,否则粘合并没有起到扩大半径的作用。输入时,将三个维度按大小排序好。再对所有石块进行排序,以

2017-02-13 16:31:27 244

原创 Codeforces 733C Epidemic in Monstropolis

题目大意:有n只怪兽排成一列,体重大的可以吃掉相邻体重比他小的,吃掉后,体重便会相应地增加。给定初始怪兽和目标状态怪兽体重,问是否可能达成目标状态。可能输出“”YES“和步骤,不可能输出“NO”。因为只能吃相邻的,所以目标状态肯定是由初始状态的连续子段和组成。那么遍历目标状态的各体重,判断能否由初始状态到达,即检查是否初始状态有连续子段的和等于该体重。若有连续子段等于该目标体重,那么是否一定能

2017-02-13 15:52:06 346

空空如也

空空如也

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

TA关注的人

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