![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技巧性题
文章平均质量分 73
Interstellar_
这个作者很懒,什么都没留下…
展开
-
POJ2559 POJ2082 POJ3494(最大矩形面积 单调栈)
POJ2559 这是最基本的,宽度都为1,只需考虑高度即可。对于每个矩形,我们从它往左开始找到第一个高度小于它的,记找到的左界为Li,同理,找到的右界为Ri,则以这个举行为基准找到的最大矩形面积为Hi*(Ri-Li+1)。寻找边界的过程可以用一个单调栈来高效地完成。#include#include#include#include#include#include#inclu原创 2017-03-19 09:55:09 · 798 阅读 · 0 评论 -
UVa 108 Maximum Sum (经典问题转化)
题目链接:https://vjudge.net/problem/UVA-108题目大意:求矩阵的最大子矩阵和思路:本体可以由一个经典问题“求一个序列的最大连续子序列”,该一维问题可以由一个简单dp来实现,令dp[i]表示以i结尾的最大连续子序列,则dp[i] = max( dp[i-1]+a[i], a[i] ),可以在O(n)的复杂度内解决。对于二维的情况,我们需要做一个转化,首先一个二原创 2017-10-10 19:30:52 · 453 阅读 · 0 评论 -
UVa 1450 Airport (二分+思路)
题目链接:https://vjudge.net/problem/UVA-1450题目大意:某飞机场有两个通道W和E。每一时刻都有一些飞机到达W通道或E通道(数目分别为ai和bi),每个通道的飞机按照来的顺序编号为0 1 2 ...,然后,每一时刻只能有一架飞机起飞。求任意时刻停留在机场的飞机的最大编号的最小值。思路:首先二分答案ans,判断是否存在一种方案,使得最大编号为ans。在判断时,原创 2017-10-03 16:25:38 · 403 阅读 · 0 评论 -
UVa 11100 The Trip, 2007 (水题)
题目链接:https://vjudge.net/problem/UVA-11100题目大意:给定n个正整数,把它们划分成尽量少的严格递增序列。思路:容易知道,严格递增序列的个数就是出现次数最多的数。直接暴力即可。#include #include #include #include #include#include #include#include#includeus原创 2017-10-02 10:36:24 · 478 阅读 · 0 评论 -
UVALive 2963 Hypertransmission
题目链接:https://vjudge.net/problem/UVALive-2963题目大意:有n个星球,每个星球坐标为(xi,yi,zi),可以看成一个点。每个星球广播A类节目或B类节目,广播范围为R(以该星球为中心半径为R的球体)。令N+(i)表示星球i听到的和自己广播相同节目的星球数(包括自己),N-(i)表示星球i听到的和自己广播不同节目的星球数。如果N+(i)思路:容易知道,原创 2017-10-09 19:08:42 · 386 阅读 · 0 评论 -
UVa 1153 Keep the Customer Satisfied (贪心+优先队列)
题目链接:https://vjudge.net/problem/UVA-1153题目大意:有n(n≤800000)个工作,已知每个工作需要的时间qi和截止时间di(必须在此之前完成),最多能完成多少个工作?工作只能串行完成。第一项任务开始的时间不早于时刻0。思路:将任务按照截止时间排序,对于每个任务,若满足要求就直接完成,若不满足要求,则从已完成任务中选取一个时间最长的取消,将当前的工作放原创 2017-10-06 17:48:19 · 426 阅读 · 0 评论 -
COdeforces 835E The penguin's game (二进制)
给定n(2解法:题目给出的19次询问次数上限是严格的。即能构造数据使得不得不询问19次才能出答案。先讨论出询问的集合元素个数的奇偶性和y个数的奇偶性返回的答案分别是什么。一共有四种情况,用(集合个数,y的个数,答案)表示的话,即有:(偶数,偶数,0),(偶数,奇数,x xor y),(奇数,偶数,x),(奇数,奇数,y),因为x与y非零且互不相等,故0,x,y,x xor转载 2017-09-14 08:36:25 · 293 阅读 · 0 评论 -
UVa 1608 Non-boring sequence (分治)
题目链接:https://vjudge.net/problem/UVA-1608题意:给出一个整数序列,若序列的任意一个连续子序列都至少有一个只出现一次的元素,则该序列为不无聊序列。判断一个序列是否无聊。思路:若某个元素在整个序列中只出现一次,则所有包含该元素的连续子序列都为不无聊序列。因此,找到这样一个元素后,只需判断该元素左边与右边的序列是否为无聊序列即可。 怎么找到这样的元素呢?可以原创 2017-08-16 14:50:39 · 367 阅读 · 0 评论 -
HDU 1029 Ignatius and the Princess IV (思路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1029大意:从一个N元素的序列(N为奇数)中找出出现次数大于(N+1)/ 2 的元素。思路:设答案为result。按照序列依次扫描,先把数组中第一个元素赋值给result,增加个计数器,cnt = 1;然后向右扫描,如果跟result相同,则cnt++,不同,那么cnt --。当cnt为0时,r原创 2017-07-15 16:42:53 · 203 阅读 · 0 评论 -
POJ 3977 Subset (折半枚举+二分)
题目链接:http://poj.org/problem?id=3977题意:给你n个数,求出这n个数的一个非空子集,使子集中的数加和的绝对值最小,在此基础上子集中元素的个数应最小。思路:n为35,直接枚举的复杂度肯定是容不下的。但我们可以把这些数分为两半,算出前一半元素所有子集对应的权和及个数,对后一半元素的每个子集,设其元素之和为sum,用二分查找的方法在前一半中找元素和原创 2017-03-10 11:08:29 · 392 阅读 · 0 评论 -
UVaLive 2757 Supermarket (贪心+优先队列)
题目链接:https://vjudge.net/problem/UVALive-2757题目大意:有n个商品,商品i的利润为pi,销售截止日期为di(必须不晚于截止日期销售才有利润),销售每个商品需要1天时间。求最大利润。思路:可以倒过来想,将商品按截止日期从晚到早排序,从大到小枚举日期d,每次将截止日期不晚于d的商品加入优先队列中,然后取出优先队列中的最大值即可。因为是从玩到早加入队列,原创 2017-10-05 08:20:42 · 364 阅读 · 0 评论