poj
文章平均质量分 81
accelerator_2016
闪电闪电,好久不见
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj 1151 Atlantis(线段树+离散化+扫描线)
题目大意: 在一个平面上有n个矩形,他们可能有部分或全部相互重叠,问矩形的总覆盖面积是多少。 解题思路: ①用一条直线从左向右扫描,每碰到一条矩形的边,就计算当前直线上被矩形覆盖的长度,同时总覆盖面积 += 当前覆盖长度*当前直线到下一条边的距离。碰到矩形左边时,可能使被覆盖长度增加,碰到右边时,可能使长度减少。 ②因为一条直线上的一段线段可原创 2016-05-12 20:04:37 · 459 阅读 · 0 评论 -
poj 3321 Apple Tree(线段树)
题目大意: 有一棵树,有n个节点,开始时每个分叉点有1个苹果,现在有m个操作,Q x代表查询x节点及x节点的子节点的苹果总和,C x代表将节点x的状态翻转,有苹果变成没苹果,没苹果变成有苹果。 解题思路: 从节点1开始,进行一次深搜,根据遍历时间为每个节点编号,进入一个新节点时时间加1,离开时,时间标为从上一个节点离开的时间。那么每个节点的进入时间和离开时间就原创 2016-05-13 00:03:35 · 480 阅读 · 0 评论 -
poj 1195 Mobile phones(二维树状数组)
题目大意: 有一个大小为s的正方形矩阵,有两种操作,第一种:在(x,y)的位置增加数字a,第二种:查询左下角为(l,b),左上角为(r,t)的矩形区域内的数字和。 解题思路: 二维树状数组模板题。 注意点: 坐标从0开始,但线段树是从1开始,所以在处理时要给坐标加1. 代码: #include #include #include原创 2016-05-13 19:34:57 · 386 阅读 · 0 评论 -
poj 3468 A Simple Problem with Integers(线段树+lazy)
题目大意: 有n个数字和q个操作,操作分两种,一种是查询区间[a,b]的和,另一种是给区间[a,b]每个元素增加c; 解题思路: 因为单点增加会超时,所以使用lazy的思想来减少更新次数,提高效率。 我写的程序中的inc中的数字还没有加到区间和sum中,这一点跟普通的lazy有一点不同,push_down和push_up的操作也直接写原创 2016-05-08 00:18:37 · 427 阅读 · 0 评论 -
poj 2528 Mayor's posters(线段树+区间离散化)
题目大意: 有一面墙,墙上铺着瓷砖,有n张海报,每张海报是从第a块瓷砖到第b块瓷砖,从第一张海报开始贴,贴到第n张海报的时候,问有多少张海报没有被完全覆盖。 解题思路: 从最后一张海报开始反着贴,如果当前要贴的区间没有完全被覆盖则当前这张海报可以被看见,答案加1。 由于瓷砖有10000000块,直接使用线段树,空间耗费过大,所以使用离散化分解原创 2016-05-08 00:52:20 · 469 阅读 · 0 评论 -
poj 3414 Pots(bfs)
题目大意: 你有两个瓶子,容量分别为A,B,有以下三种操作: 1.FILL(i) 将i灌满。 2.DROP(i) 将i倒空。 3.POUR(i,j) 将i中的水倒入j中。可能j已满,i没倒空或j未满,i已空。 问最少操作几次可以使其中一个杯子容量为C,若无法成立,则输出"im原创 2016-07-10 13:22:15 · 377 阅读 · 0 评论 -
poj 3279 Fliptile(搜索)
题目大意: 有一个m*n的棋盘,每个格子上是0或1,每次可以对一个格子做一次翻转操作,将被操作的格子和上下左右4个格子的0/1翻转。问做少做多少次翻转可以将所有格子翻转成0,输出翻转方案。没有方案时输出“IMPOSSIBLE”。 解题思路: 枚举第一行的共2^n种翻转方式。 枚举第一行的情况相当于确定了整个棋盘的翻转方式,因为在第i行翻转方式原创 2016-07-09 18:41:03 · 3507 阅读 · 2 评论
分享