永恒的契约

news/2024/11/9 10:11:17/

题目大意

有一个神奇的大回环,由n块石头组成。
第i块石头有一个高度ai,两块不同的石头i,j能够互相看到,则它们在环上的两条路径中有至少一条路径上除了两个端点(即i,j)路径上石头高度都不大于min(ai,aj)。
求有多少对石头能够互相看到

数据范围n<=1e6,T<=5,1<=ai<=1e9

先不考虑ai=aj的情况

我们可以把序列加倍,然后用单调栈处理出l[i]和r[i] (ia[j]a[i]j) ,也就是只考虑i能看到a值比自己大的,同时如果i左右看到位置在原序列中相同ans只+1否则,这样就不会重复计算了。
ai=aj时,这个讨论起来不会很麻烦,处理l[i]的同时便可一起维护。

代码

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define fo(i,a,b) for(i=a;i<=b;i++)
#define fod(i,a,b) for(i=a;i>=b;i--)
#define ll long long
using namespace std;
const int maxn=2e6+5;
int i,j,n,m,t,a[maxn],l[maxn],r[maxn],f[maxn];ll ans,an[maxn];
void read(int &x){x=0;char c=getchar();while ((c<'0')||(c>'9')) c=getchar();while ((c>='0')&&(c<='9')) x=x*10+c-'0',c=getchar();
}
int main(){freopen("forever.in","r",stdin);freopen("forever.out","w",stdout);read(t);while (t>0){t--;read(n);fo(i,1,n+n) an[i]=0;fo(i,1,n) read(a[i]),f[i]=i;fo(i,n+1,n+n) a[i]=a[i-n];ans=0;fo(i,1,n+n) {j=i-1;while ((j>0)&&(a[j]<=a[i])) {if (a[j]==a[i]) {if (i<=n) f[i]=f[j],an[f[i]]++,ans+=an[f[i]];else{if (j<=n&&f[j]!=i-n) ans+=(ll)(an[f[j]]+1)*(an[f[i-n]]+1);}} j=l[j];}l[i]=j;}fod(i,n+n,1){j=i+1;while ((j<=(n+n))&&(a[j]<=a[i])) j=r[j];r[i]=j;}fo(i,1,n) if (r[i]<=n+n) ans++;fo(i,n+1,n+n) if (l[i]>0){if (r[i-n]!=l[i])ans++;}printf("%lld\n",ans);}
}

http://www.ppmy.cn/news/703791.html

相关文章

永恒★爱★

没有人有永恒的生命&#xff0c;因为有生命就意味着有死亡。没有人有永恒的朋友&#xff0c;只要交上新的朋友&#xff0c;就会失去一些老的朋友。没有永恒的敌人&#xff0c;有一天你会发现敌人也会像朋友一样亲密&#xff0c;朋友也会成为你的可怕敌人。只有爱与血缘才是永恒…

永恒的魅力

爱情具有永恒的魅力&#xff0c;它不仅给人带来感情上的相互满足&#xff0c;而且在于它总是蕴含着一种未知的深度。这种深度令人揣摩&#xff0c;教人思索&#xff0c;从而使人在不知不觉中汲取力量&#xff0c;感受到爱情的真正的伟大。  爱具有巨大的创造一切的力量&#…

09永恒之蓝与永恒之黑的复现

一、永恒之蓝 1.简介 2017年3月14日&#xff0c;微软公布SMB远程代码执行漏洞&#xff08;MS17-010&#xff09;,又称永恒之蓝&#xff0c;该漏洞在 Microsoft 服务器消息块 1.0 (SMBv1) 服务器处理某些请求时&#xff0c;存在多个远程执行代码漏洞。成功利用这些漏洞的攻击者…

永恒之蓝补丁

国家网络与信息安全信息通报中心紧急通报&#xff1a;2017年5月12日20时左右&#xff0c; 新型“蠕虫”式勒索病毒爆发&#xff0c;目前已有100多个国家和地区的数万台电脑 遭该勒索病毒感染&#xff0c;我国部分Windows系列操作系统用户已经遭到感染。 情况紧急&#xff0c;…

永恒不变

项目的消息发布了&#xff0c;在本次CJ。 没有过多的感觉&#xff0c;因为没有心思去感觉。 动态加载的优化、天气系统、材质优化、64位平台支持、编辑器新功能、BUG修正…… 看起来很多吧&#xff1f;一点都不多&#xff0c;来了两位强大的同事来分担工作&#xff0c;其实我…

永恒之蓝

南昌大学计算机渣渣一枚&#xff0c;午睡时刷微博发现一则有关比特币病毒的消息快速扩散了出来&#xff0c;各高校校园网纷纷中招&#xff0c;cmcc也不能用&#xff0c;黑客凯文也推上了热搜。 昨晚就听说了校园网和cmcc中毒了&#xff0c;但是具体是个什么事不太清楚&#xf…

终结“永恒之蓝”后,再战“永恒之黑”

引子&#xff1a; 2003年的“抗击非典”&#xff0c;17年后的2020年“抗击新冠”。 2017年的“永恒之蓝”&#xff0c;3年后的2020年“永恒之黑”。 历史&#xff1a; 2017年5月13日&#xff0c;在“胖哥技术堂”中发布了《截杀“WannaCrypt”&#xff0c;终结“永恒之蓝”》。…

永恒的哈代

歌大叔 微博 | 来源 控制论的创始人、美国数学家诺伯特维纳曾经这样评价&#xff1a;从未有谁对数学的讲解能达到哈代那样一种明晰、充满趣味、富有智慧的境界。 20世纪分析数学的12座丰碑 法国数学家 Choimet 与 Quefflec 在其《20世纪分析数学的12座丰碑》一书&#xff0c;选…