"C2 Skyscrapers (hard version)" 分别用 表示在 i 位置能取到的左边的值之和,右边的值之和。 利用单调栈的思想。 降低复杂度的方法是,充分利用重复计算的数据,将其保存下来,避免多次计算。 ...
分类:
其他好文 时间:
2020-02-24 20:20:56
阅读次数:
59
[Codeforces Round 622 (Div. 2)] C2. Skyscrapers (hard version) (单调栈) C2. Skyscrapers (hard version) time limit per test 3 seconds memory limit per tes ...
分类:
其他好文 时间:
2020-02-24 18:17:29
阅读次数:
127
(原题见POJ2010) 这道题我之前采用了优先队列+预处理的方法求解(https://www.cnblogs.com/jacobfun/p/12244509.html),现在用二分的办法进行求解。 一开始我很纳闷,采用二分求解本题,如果二分的mid值不符合条件,按照二分右边界应该为mid - 1( ...
分类:
其他好文 时间:
2020-02-24 17:04:26
阅读次数:
92
"题目链接" 题意是给你一个数组,问你如何建造,使得每个点都不小于其左右的点,包括不相邻的点 分析题意,容易得知,就是找一个点两侧的不上升序列且带修,那我们就分别从头跑一遍,从尾跑一遍,两者相加就是每个点的最大值 那我们可以利用单调栈来进行这个操作,注意初始化栈 这道题和 "CF1300E" 思想一 ...
分类:
其他好文 时间:
2020-02-24 16:54:33
阅读次数:
53
题目: 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, }; 它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜 ...
分类:
其他好文 时间:
2020-02-21 20:39:30
阅读次数:
66
The input contains N natural (i.e. positive integer) numbers ( N <= 10000 ). Each of that numbers is not greater than 15000. This numbers are not nece ...
分类:
其他好文 时间:
2020-02-21 20:07:51
阅读次数:
74
题目:传送门 题意: 给你 n 条线段的两个端点, 然后有多次询问, 每次询问, 问你线段 x 和 线段 y 是否相交。 若线段 A 和线段 B 相交且线段 A 和线段 C 相交,那么线段 B 和线段 C 相交。 1 < n < 13 题解: 暴力求线段是否相交, 然后再跑个 Floyd 或者并查集 ...
分类:
其他好文 时间:
2020-02-21 16:34:06
阅读次数:
77
题目:传送门 题意: 给你 n 个不相交的圆, 问你有多少圆不被其他圆内含。 解: 我们把所有圆的左端点和右端点的 x 单独拿出来按升序排序, 然后从左往右扫。 然后遇到左边点就判断这个圆是否被内含, 不被内含就加入 ans。 具体可看代码。 #include <iostream> #include ...
分类:
其他好文 时间:
2020-02-21 14:19:14
阅读次数:
58
题目: 传送门 题意: 给你n条线段的两个端点,问所有线段投影到一条直线上,这些投影至少相交于一点,就输出Yes!,否则就是 No! 题解: 戳 #include <iostream> #include <stdio.h> #include <string.h> #include <algorith ...
分类:
其他好文 时间:
2020-02-20 22:06:45
阅读次数:
71
41. 包含min函数的栈 设计一个支持push,pop,top等操作并且可以在O(1)时间内检索出最小元素的堆栈。 push(x)–将元素x插入栈中 pop()–移除栈顶元素 top()–得到栈顶元素 getMin()–得到栈中最小元素 单调栈) O(1) https://www.acwing.c ...
分类:
其他好文 时间:
2020-02-20 17:01:58
阅读次数:
92