上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 30 下一页
摘要: 题目链接:http://poj.org/problem?id=2559 典型问题,就是有一个地方要注意,用数组模拟栈的时候要判断栈是否为空才能弹出元素,否则的话,设置一个st[0]=-1,这样矩形高度是0的时候就会自动判断栈空。 代码如下: #include<iostream> #include<c 阅读全文
posted @ 2020-06-17 10:17 WA自动机~ 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 递归求解,首先寻找最后一个加减号,拆分两段,若无最后一个加减号,寻找最后一个乘除号,这时这个表达式中只涉及括号外的乘除法(单个数算在内)。 这个算法实际上就是在将这个表达式分解成含括号的分量和含有乘法的分量,然后再按照乘法分量进行分解。 奉上案例: 1+3*4-(12-1)+20 代码如下: #in 阅读全文
posted @ 2020-06-17 09:23 WA自动机~ 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4699 由于当前的操作只和序列中的某一个指定的位置有关,可以从光标处将序列划分两段,分别维护两个栈,再维护左栈的前缀和以及前缀和最大值。 代码如下: #include<iostream> using na 阅读全文
posted @ 2020-06-17 08:29 WA自动机~ 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2054 贪心算法,思路参考yxc,涉及树的合并与缩点,将所有触发点构成的链全部缩进根节点即可得到最终的结果。证明: 代码如下: #include<iostream> using namespace std; const int maxn 阅读全文
posted @ 2020-06-16 14:08 WA自动机~ 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.acwing.com/problem/content/description/116/ 证明转载于https://www.acwing.com/problem/content/description/116/ 使用“轻微扰动”的方法判断当前的选择是否是最优的,我们可 阅读全文
posted @ 2020-06-16 11:16 WA自动机~ 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=1328 给出平面上N个点,要求在横轴上放置最少的点来覆盖N个点,其中每个点的覆盖半径都是R,可以将问题转化成用点覆盖线段的问题,计算N个点中每个点的可被管辖区间, 转化成求每个线段中至少有一个点的最少的点数。贪心思想。 代码: #inc 阅读全文
posted @ 2020-06-16 09:48 WA自动机~ 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3190 题目中给定N头牛的吃草开始时间和结束时间,每头牛必须单独在一个牛栏里吃草,问最少需要多少个牛栏能满足要求? 抽象出来的模型就是最少能将N个区间不相交地分布在多少个栏目中? 算法步骤: 将所有牛按开始吃草的时间排序;用小根堆维护当 阅读全文
posted @ 2020-06-16 08:57 WA自动机~ 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3614 题目可以抽象为:给定一些区间,和某些点,问最多有多少个区间能落入一个点(一个区间最多落入一个点),利用贪心的思想,将区间左端降序,顺序扫描区间,取最大的可被放进区间的点,因为 如果有两个点都能放进这个区间,那较小的点对下一个区间 阅读全文
posted @ 2020-06-16 07:54 WA自动机~ 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.acwing.com/problem/content/description/111/ 首先定义了集合S的校验值,取出m对数,使得每对平方之后求和最大,这个值成为集合S的校验值。现在给定一个数列,求满足每段的校验值小于T的前提下最小能把数列分成连续的几段? 利用倍增 阅读全文
posted @ 2020-06-15 20:28 WA自动机~ 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3784 对顶堆算法:输入M个数的时候,将其中1~[M/2]个小的数存入大顶堆,将剩余数存入小顶堆,如果大顶堆中的数的数量大于[M/2]就讲堆顶元素取出扔到小顶堆中去, 当扫描到计数数量时,输出小顶堆的堆顶元素,也就是第[M/2]+1大的 阅读全文
posted @ 2020-06-15 16:40 WA自动机~ 阅读(148) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 30 下一页