上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 19 下一页

2013年5月22日

HDU4262–Juggler(区间求和&&单点更新)

摘要: 题目大意 有一个圆形管道,里面有N个球,给定N个球的出圈顺序,最初的时候手的位置是在第一个球的位置,如果一个球的位置刚好是手所在的位置,那么它可以被取出,要求你按照给定的出圈顺序,依次取出N个球,在旋转到目标小球的时候,可以向左旋转,也可以向右旋转,每移动一个单位位置,需要一个单位的花费,要求你计算出最少的花费是多少 题解 如果读懂题目了,那么就很好做了,当时模拟的比赛的时候看了好久题目都没有看懂... 阅读全文

posted @ 2013-05-22 09:13 仗剑奔走天涯 阅读(205) 评论(0) 推荐(0) 编辑

POJ3225 - Help with Intervals(区间操作)

摘要: 纯属抄袭胡浩大神的题解。。。看了N久才看懂o(╯□╰)o,果然智商拙计,学习到了一种处理开区间的方法(感觉好神奇),当个搬运工。。。 题目大意: 区间操作,交,并,补等 题解: 我们一个一个操作来分析:(用0和1表示是否包含区间,-1表示该区间内既有包含又有不包含) U:把区间[l,r]覆盖成1 I:把[-∞,l)(r,∞]覆盖成0 D:把区间[l,r]覆盖成0 C:把[-∞,l)(r,∞]覆盖成... 阅读全文

posted @ 2013-05-22 08:41 仗剑奔走天涯 阅读(237) 评论(0) 推荐(1) 编辑

POJ1463 - Horizontally Visible Segments(区间覆盖)

摘要: 题目大意 给出N条线段的x坐标,以及两个y坐标,要求你求出线段之间两两相互可见的三元组数量 题解 先对线段按x坐标升序排序,按顺序进行处理,每次先查询操作,如果当前线段i与其之前的某个线段可见,那么在它们之间建立一条边(用容器来存储),表示它们两相互可见,然后再进行更新操作。处理完之后就是统计了,直接暴力即可。。。还有就是容器记得初始化。。。我被坑了。。。 代码: #include<iostrea... 阅读全文

posted @ 2013-05-22 08:32 仗剑奔走天涯 阅读(204) 评论(0) 推荐(0) 编辑

POJ2991–Crane(成段更新+向量旋转)

摘要: 题目大意 有一个为N节的机械手,每次可以让某个关节点旋转到某一角度,问旋转操作结束之后最末端节点的坐标 题解 当第i段与第i+1段之间的关节进行旋转时,从第i+1段到第n段都要进行旋转,类似于成段更新(成段旋转),如果把每个线段看成一个向量的话,末端的坐标等于所有向量的和。已知某个点的坐标(x,y),求逆时针旋转之后的坐标: 或 代码: #include<iostream>#include... 阅读全文

posted @ 2013-05-22 08:07 仗剑奔走天涯 阅读(343) 评论(0) 推荐(0) 编辑

2013年5月17日

HDU4302 - Holedox Eating(单点修改&&最大值最小值查询)

摘要: 题目大意 给定一个长为L的水管,可以进行以下两种操作,小动物初始位置为0: 1、在位置a的水管处添加一个食物 2、让小动物吃掉一个离它最近的食物,如果左右两个方向离它最近的食物的距离相等,则选择与它朝向相同的方向的食物吃掉 题解 操作一就是单点修改,对于操作二,维护一个区间最大值和最小值,然后每次查询小动物左边的最大值和右边的最小值,然后进行选择,有一个坑爹的地方就是如果没有食物吃则呆在原地不动 ... 阅读全文

posted @ 2013-05-17 15:42 仗剑奔走天涯 阅读(238) 评论(0) 推荐(0) 编辑

2013年5月15日

POJ2528 - Mayor's posters(区间替换&&线段切割)

摘要: 题目大意 在墙上贴海报,海报可以相互覆盖,问最后能够看到多少种海报 题解 方法一:线段树 嘛,就是区间染色问题,和POJ2777一样,不过颜色的种类比POJ2777多多了,最多有10000种。。。所以不能用位运算计算出颜色的总数量来。我们用另外一种方法,多了一个查询函数,在进行完海报的覆盖之后,对整个线段树进行一次查询,查询未清除的标记(碰到一个为标记的标记就回溯),未标记的种类总数就是最终可以看... 阅读全文

posted @ 2013-05-15 15:49 仗剑奔走天涯 阅读(224) 评论(0) 推荐(0) 编辑

2013年5月13日

POJ2777 - Count Color(区间修改&&懒惰标记&&位运算)

摘要: 题目大意 给定一个长度为n的序列A,可以对其进行以下两种操作: 1、“C A B C”把区间[A,B]的值全部修改为C 2、“P A B”查询在区间[A,B]中不同的元素总数 题解 每一种颜色的数值用一个2的幂来表示,父节点的值刚好是两个子节点的并操作,答案就是查询的区间值转换成二进制后1的个数,尼玛调试了好久。。被懒惰标记坑了。。。在查询的时候还需要进行更新。。。因为用了懒惰标记,查询的时候有些... 阅读全文

posted @ 2013-05-13 23:02 仗剑奔走天涯 阅读(243) 评论(0) 推荐(0) 编辑

HDU1698 - Just a Hook(成段替换+懒惰标记)

摘要: 题目大意 给定一个长度为n的序列A,每个元素值初始全部为1,接下来有m个操作,每次给定操作区间[X,Y]和一个值v,表示把AX,AX+1,…AY的值全部修改为v,完成m次在操作之后要求你求出序列的总和 题解 区间修改的模板题。。。需要用到懒惰标记(搞了好久才弄懂o(╯□╰)o)。。。 代码: #include<iostream>#include<cstdio>#include<cstring>#i... 阅读全文

posted @ 2013-05-13 22:26 仗剑奔走天涯 阅读(180) 评论(0) 推荐(0) 编辑

POJ2828 - Buy Tickets

摘要: 题目大意 有n个陆续去售票口排队买票,每个人都会插队,第i个人会插到位置为pos[i]的人的后面,问最后队列的情况 题解 我们可以发现,对于第n个人,它插入的位置就是他最终站的位置,因此我们从第n个人开始处理,对于第i个人,找到第pos[i]+1个空位插入即可,然后空位减少一个,查找空位和对空位数量进行修改刚好可以用线段树来处理 代码: #include<iostream>#include<cst... 阅读全文

posted @ 2013-05-13 21:50 仗剑奔走天涯 阅读(164) 评论(0) 推荐(0) 编辑

HDU2795–Billboard(单点修改&&区间最值)

摘要: 题目大意 给定一个大小为h*w的矩形和n个子矩阵,大小分别为1*w1,1*w2,1*w3,..1*wn。要求你把n个子矩阵按给出顺序依次放置在大矩阵中(如果能够放入的话),使得放置的位置尽量靠顶端,如果有几种情况符合条件的话,选择最靠左的位置放置,要求你输出每个子矩阵放置的位置的行数,如果不能能放置则输出-1 题解 线段树的单点修改和区间最值问题,把每一行作为线段树的一个叶子结点,每个叶子结点的初... 阅读全文

posted @ 2013-05-13 21:17 仗剑奔走天涯 阅读(254) 评论(0) 推荐(0) 编辑

2013年5月11日

(转)有关如何入门ACM

摘要: 有关如何入门ACM 来源: 吴垠的日志 一些题外话 首先就是我为什么要写这么一篇日志。原因很简单,就是因为前几天有个想起步做ACM人很诚恳的问我该如何入门。其实就现在而言,我并不是很想和人再去讨论这样的话题,特别是当我发现我有很多的东西要学的时候,我实在是不想花太多的时间在这种问题上。但是我当年也是纯凭热情搞ACM过来的,实在是不忍心打击一个同样有着满腔热情的起步者。所以干脆就多花点时间,总... 阅读全文

posted @ 2013-05-11 00:33 仗剑奔走天涯 阅读(402) 评论(0) 推荐(0) 编辑

2013年5月10日

POJ1753 - Flip Game

摘要: 题目大意 给定大小为4*4的正方形网格,每个网格都有一个棋子(要是正面,要么是反面),要求对棋子进行尽量少的翻转(翻转某个棋子会使得与其有公共边的棋子都翻转),使得所有的棋子全部为正面或者全部为反面 题解 枚举第一行的状态即可,只要第一行确定了,其他每行的操作都确定了 代码写得有点挫。。。。 #include<iostream>#include<stdio.h>#include<stdlib.h>... 阅读全文

posted @ 2013-05-10 14:12 仗剑奔走天涯 阅读(141) 评论(0) 推荐(0) 编辑

2013年5月6日

HDU1394 - Minimum Inversion Number(单点增减&&区间求和)

摘要: 题目大意 给定一个序列a1,a2,a3,..,an-1,an.每次通过把最左端的数转移到序列的最后面得到新的序列,通过n-1次操作,可以得到n-1个新的序列,要求你求出n个序列中逆序数最少的序列的逆序数总数 题解 可以用线段树求出原始序列的逆序数对总数sum来,然后通过通过递推可以求出另外n-1个序列的逆序对总数,用sum减去a[i](0<=i<=n-1)在转移之前右边比它小的数的总数(a[i])... 阅读全文

posted @ 2013-05-06 21:21 仗剑奔走天涯 阅读(206) 评论(0) 推荐(0) 编辑

2013年5月5日

HDU1754 - I Hate It(单点更新&区间查询)

摘要: 题目大意 给定一个序列A1,A2,..,An.可以对其进行一下两种操作: 1、query(a,b) 查询区间[a,b]的最大值 2、update(a,b) 把点a的值修改为b 题解 线段树的基础操作,单点更新和区间查询,第一次写线段树!!!激动ing!!!(虽然是照着《训练指南》和shǎ崽大神的代码写的。。。) 代码: #include<iostream>#include<cstring>#inc... 阅读全文

posted @ 2013-05-05 22:07 仗剑奔走天涯 阅读(147) 评论(0) 推荐(0) 编辑

POJ3368 - Frequent values

摘要: 题目大意 给出一个非降序排列的整数数组a1,a2,..,an,你的任务是对于一系列询问(i,j),回到ai,ai+1..,aj中出现次数最多的值所出现的次数。 题解 请参看《训练指南》P198页。。。 代码 #include<iostream>#include<cstring>#include<cstdio>#include<algorithm>#define MAXN 100005using n... 阅读全文

posted @ 2013-05-05 19:38 仗剑奔走天涯 阅读(170) 评论(0) 推荐(0) 编辑

上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 19 下一页

导航