正题

题目链接:https://www.luogu.com.cn/problem/T183637


题目大意

给出nnn个二元组(xi,yi)(x_i,y_i)(xi​,yi​),求最大的
∣xi−xj∣×min{∣yi∣,∣yj∣}|x_i-x_j|\times min\{|y_i|,|y_j|\}∣xi​−xj​∣×min{∣yi​∣,∣yj​∣}

1≤n≤2×106,−106≤xi≤106,−109≤yi≤109,1≤T≤101\leq n\leq 2\times 10^6,-10^6\leq x_i\leq 10^6,-10^9\leq y_i\leq 10^9,1\leq T\leq 101≤n≤2×106,−106≤xi​≤106,−109≤yi​≤109,1≤T≤10


解题思路

昨天出去了所以没打比赛,这个算法是那个时候口胡的。

首先时间复杂度显然不能带logloglog,但是注意到xxx的范围,这是在告诉我们可以拿xxx去排序。

xxx排好序之后,我们发现对于一个位置jjj,我们寻找一个i<ji<ji<j使得答案最大那么显然iii要在从前往后的单调队列里。

这个其实启示了我们,我们可以前后各维护一个单调栈然后在两个栈里面搞。

至于搞法不难发现决定因素是最小的那个,所以我们每次把小的那个弹出顶部就好了。

时间复杂度O(n)O(n)O(n)。

然后交上去TTT了好多发,以为是常数的问题,结果换成题解的做法还是TTT了。

最后发现快读还不够,要用那个文件的黑科技读入,出题人真有你的


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cctype>
#define ll long long
using namespace std;
const int N=2e6+10;
int T,n,a[N],sp[N],ss[N],tp,ts;
long long ans;
inline char Getchar()
{static char buf[100000],*p1=buf+100000,*pend=buf+100000;if(p1==pend){p1=buf; pend=buf+fread(buf,1,100000,stdin);if (pend==p1) return -1;}return *p1++;
}
inline int read()
{char c;int d=1;int f=0;while(c=Getchar(),!isdigit(c))if(c==45)d=-1;f=(f<<3)+(f<<1)+c-48;while(c=Getchar(),isdigit(c)) f=(f<<3)+(f<<1)+c-48;return d*f;
}
void GetAns(int i,int j)
{ans=max(ans,1ll*(i-j)*min(a[i],a[j]));}
signed main()
{T=read();while(T--){n=read();ans=0;memset(a,0,sizeof(a));for(int i=1;i<=n;i++){int x=read()+1e6,y=read();a[x]=max(a[x],abs(y));}ts=tp=0;for(int i=0;i<=2e6;i++){if(!a[i])continue;while(ts>0&&a[i]>=a[ss[ts]])ts--;ss[++ts]=i;}for(int i=2e6;i>=0;i--){if(!a[i])continue;while(tp>0&&a[i]>=a[sp[tp]])tp--;sp[++tp]=i;}int hp=1,hs=1;while(ts&&tp){GetAns(ss[ts],sp[tp]);if(ts>0&&a[ss[ts]]<=a[sp[tp]])ts--;else tp--;}printf("%lld\n",ans);}return 0;
}

T183637-变异距离(2021 CoE III C)【单调栈】相关推荐

  1. leetcode 496, 503, 556. Next Greater Element I, II, III | 496, 503, 556. 下一个更大元素 I,II,III(单调栈)

    496. Next Greater Element I https://leetcode.com/problems/next-greater-element-i/ 单调栈问题,参考:https://l ...

  2. leetcode 84. Largest Rectangle in Histogram | 84. 柱状图中最大的矩形(单调栈)

    题目 https://leetcode.com/problems/largest-rectangle-in-histogram/ 题解 一句话总结:遍历数组,对于每个height[i],以其自身的高度 ...

  3. 2018宁夏邀请赛网赛 G.Trouble of Tyrant(单调栈)

    题意: 有n个点,2n-3条边的图.点 1 到每个点有一条边,编号相邻的两个点有一条边.q次询问,每次询问一个增量d,问图中每条边都增加 d 后,1 到 n 的最短路是多少.增量独立,不累加. 1 & ...

  4. 2021牛客多校2 - Stack(单调栈+拓扑)

    题目链接:点击查看 题目大意:给出 b[i]b[i]b[i] 数组的求解过程: Stk is an empty stack for i = 1 to n :while ( Stk is not emp ...

  5. php编写当前日期距高考天数,距离2021年高考天数 2021高考倒计时

    2021高考时间:6月7日 星期一(辛丑年)四月廿七.考试时间为6月7日至8日.那么距离2021高考还有多少天呢? 距离2021年高考天数 今天距离2021年高考还有254天. 部分省级行政单位高考安 ...

  6. 2021河南高考成绩查询倒计时,距离2021年高考天数 2021高考倒计时

    2021高考时间:6月7日 星期一(辛丑年)四月廿七.考试时间为6月7日至8日.那么距离2021高考还有多少天呢? 距离2021年高考天数 今天距离2021年高考还有254天. 部分省级行政单位高考安 ...

  7. 2021高考成绩查询倒计时,距离2021高考时间还有多少天 2021高考倒计时查询

    现在查询2021年高考时间,一点都不早,因为高二学生们一结束期末,你们就是高三生了,接下来的一年里,你就是为高考而做准备的,所以提前了解高考时间,为复习做好计划安排.那么,距离2021高考还有多少天呢 ...

  8. 单调栈思维 2021年度训练联盟热身训练赛第三场——K题 Summer Trip

    题意: 给你一个字符串,问其子串中有多少个满足: 1.子串头尾字母不相同: 2.子串内部字母与头尾字母不相同: 3.子串长度大于等于2: 问有多少个这样的字串? 题目: Leo has started ...

  9. CodeForces - 1484E Skyline Photo(dp+单调栈)

    题目链接:点击查看 题目大意:给出 nnn 个建筑,每个建筑有一个高度和一个美丽值,现在要求划分为数个连续的区间,使得所有区间的贡献之和最大,其中每个区间的贡献值为,区间中高度最低的建筑物的美丽值 题 ...

最新文章

  1. 智源成立面向可持续发展的人工智能智库并发布公益研究计划
  2. BQ24296充电管理芯片使用过程中的注意事项
  3. 实现wordpress的首页文章摘要!
  4. 《游戏服务器的架构演进》阅读笔记
  5. 单循环链表(C语言实现)
  6. python 提取列表元素_Python如何获取列表中元素的索引,python,获得,某个,index
  7. Andriod广播注册接收过程简析
  8. GridView中BoundField重复绑定数据
  9. 在指定文件类型中递归查找到目标字符串
  10. 阿里巴巴矢量图标库在线链接使用图标
  11. PS制作微信公众号封面
  12. mac mojava 安装php56的正确姿势
  13. Arcgis使用教程(十)ARCGIS地图制图之固定比例尺设计
  14. discuz发帖流程_C#代码、流程discuz论坛批量或自动发帖
  15. 无线渗透-----aircrack-ng破解WEP加密
  16. js实现Base64的加密解密
  17. 战神引擎独立端全套搭建教程
  18. 算法实现:判断二叉树是否为完全二叉树
  19. 【考研总结】考研失败后的反省
  20. 想哪写哪_随笔20191203

热门文章

  1. php左连接,如何在php中对左联接查询返回的数组数据进...
  2. php7 匿名继承类_PHP7中的匿名类使用方法_后端开发
  3. python123动物重量排序_Python爬虫图片学习(一)
  4. 电脑任务管理器快捷键_电脑知识小常识
  5. mysql打开无法控制_MySQL不能启动和停止 MySQL各种解决方法教程
  6. 蓝桥杯-代码-数字三角形
  7. Java多线程之龟兔赛跑和抢票
  8. 幂等问题 vs 如何判断是否是4的幂
  9. C++实现线段树求区间和-区间查询
  10. HDU - 2444——The Accomodation of Students(判断二分图,二分图最大匹配)