摘要:
【题目链接】 http://poj.org/problem?id=3254 【题目大意】 给出一个n*m的地图,0表示不能放,问往格子上摆放上下左右不能相邻的棋子有几种方案。 【题解】 首先预处理出单行合法的情况和地图中有障碍的状态, 每次计算一行的方案时,我们枚举两种合法状态, 如果两种状态可以上 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=2441 【题目大意】 每个人有过个喜欢的篮球场地,但是一个场地只能给一个人, 问所有人都有自己喜欢的场地的方案数。 【题解】 状态S表示已经用了那些场地,顺序递推每个人满足需求的情况即可。 【代码】 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=1769 【题目大意】 给出一些排序器,能够将区间li到ri进行排序,排序器按一定顺序摆放 问在排序器顺序不变的情况下,一定能够将最大值交换到最后一位至少需要保留几个排序器 【题解】 我们发现,对于每个排序器,dp[ri]=min(d 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=2686 【题目大意】 给出一张无向图,你有n张马车票每张车票可以租用ti匹马, 用一张马车票从一个城市到另一个城市所用的时间为这两个城市间的道路距离除以马的数量 一张马车票只能用一次,问从a到b的最短时间 【题解】 dp[S][u] 阅读全文
摘要:
【Summarize】 1. 线性维护只能处理部分问题的时候要想到数据拆分,容斥解决问题 2. 在不断有人被淘汰的序列问题中,查找左右第几个人是谁的时候可以考虑线段树优化 3. 当问题结果并不同时依赖与两个维度的操作的时候,二维问题可拆分为两个一维问题分别解决 POJ 1990:MooFest PO 阅读全文
摘要:
【题目链接】 UVA11990 【题目大意】 给出一个数列,每次删去一个数,求一个数删去之前整个数列的逆序对数。 【题解】 一开始可以用树状数组统计出现的逆序对数量 对于每个删去的数,我们可以用线段树求出它在原序列中的逆序对贡献 在线段树的每个区间有序化数据,就可以二分查找出这个数在每个区间的位置, 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=1201 【题目大意】 告诉你一个区间至少要选定的数字的个数,给出n个区间的需求 问最少选取几个数字可以满足所有的需求 【题解】 对于区间[a,b]建立不等式Sb+1-Sa>=c,最后要求最小化Smax, 结合基础条件Si+1-Si> 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=3470 【题目大意】 给出几面墙,均垂直于x轴或者y轴,给出一些鸟的位置(二维坐标点), 鸟只会垂直x轴或者y轴飞行,并且会撞上最近的墙,问每面墙最后会有几只鸟撞上去。 【题解】 我们将所有的二维坐标离散,对xy方向分别进行扫描线, 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=3368 【题目大意】 有一个有序序列,要求区间查询出现次数最多的数 【题解】 维护每个区间左端点和右端点,以及左右的长度,还有区间的答案 每次线段合并的时候,对区间数据进行合并即可。 【代码】 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=3264 【题目大意】 求区间最大值和最小值的差值 【题解】 线段树维护区间极值即可 【代码】 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=2886 【题目大意】 一些人站成一个圈,每个人手上都有一个数字, 指定从一个人开始淘汰,每次一个人淘汰时,将手心里写着的数字x展示 如果x是正数,则淘汰右手边第x个人,否则淘汰左手边地-x个人。 每个人淘汰的时候将获得积分,积分的多 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=2155 【题目大意】 要求维护两个操作,矩阵翻转和单点查询 【题解】 树状数组可以处理前缀和问题,前缀之间进行容斥即可得到答案。 【代码】 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=3109 【题目大意】 在一个棋盘上放满白子,现在把一些白子变成黑子, 如果一个白子上下左右都有黑子,就会变成黑子,问最终黑子个数 【题解】 首先我们在每列的开头和结尾做标记,之后对行线扫描, 如果是列的开头,那么在该列中标记,如果是 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=1990 【题目大意】 给出每头奶牛的位置和至少要多少分贝的音量才能听到谈话 现在求奶牛两两交流成功需要的分贝*距离的总和。 【题解】 我们将奶牛对于需要的分贝排序,那么在计算的时候, 每头奶牛只要计算和序列前面所有奶牛的答案即可 那 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=2991 【题目大意】 给出一条竖直线,由很多线段组成, 每次可以把中间某个节点的位置逆时针转动一定角度,求每次转动之后这条线终点位置。 【题解】 用线段树维护线段的角度和向量有: vx[x]=vx[lson]+cosα*vx[rso 阅读全文
摘要:
【题目链接】 http://acm.hdu.edu.cn/showproblem.php?pid=1496 【题目大意】 给出一个方程ax1^2+bx2^2+cx3^2+dx4^2=0,求-100到100范围内的解集数量 【题解】 将ax1^2+bx2^2存入哈希,反查-cx3^2-dx4^2. 【 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=2785 【题目大意】 给出四个数组,从每个数组中选出一个数,使得四个数相加为0,求方案数 【题解】 将a+b存入哈希表,反查-c-d 【代码】 阅读全文
摘要:
【Summarize】 1. 对区段和取绝对值的做法,可以转化成有序前缀和的差值,性质不变 2. 结论依赖于数据单调性的题基本可以尺取 3. 哈希表可以灵活应用于查找有非等限制条件的数据 POJ 2566:Bound Found POJ 2739:Sum of Consecutive Prime N 阅读全文
摘要:
【题目链接】 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0531 【题目大意】 给出一张图,和一些矩形障碍物,求该图没被障碍物覆盖的部分被划分为几个连通块 【题解】 首先对图中的点进行离散化,对于一个障碍物来说, 我们将其看做左 阅读全文
摘要:
【题目链接】 http://poj.org/problem?id=2549 【题目大意】 给出一个数集,从中选择四个元素,使得a+b+c=d,最小化d 【题解】 我们对a+b建立Hash_table,之后枚举c和d,寻找c-d且不由c和d构成的hash值是否存在 如果存在,那么d就可以用来更新答案 阅读全文