SGU 488 Dales and Hills

本文介绍如何使用单调队列解决最长连续单调子序列问题。通过两次遍历数组,分别找出每个元素左侧和右侧的最长连续单调递增和递减序列长度,并通过枚举得出最终答案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这给题目和LIS类似,只不过是求连续的单调序列,用单调队列可破之,比如求LDIS(连续单增序列),如果a[i]大于栈顶元素入栈,将top作为序列长度,反过来再扫一遍就是包含该元素的单调递减序列,这样通过LCDS,LCIS函数可得到4个存储某元素左右的单调增,减的数组。然后枚举一遍就可以。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 #define N 1111111
 5 #define INF 0x0f0f0f0f
 6 using namespace std;
 7 
 8 int stack1[N];//不要在函数里开大数组!!!
 9 int n;
10 void LCIS(int dp[],int a[])
11 {
12     int top=0;
13     stack1[top]=-INF;
14     for(int i=1;i<=n;i++)
15     {
16         if(a[i]>stack1[top])
17         {
18             stack1[++top]=a[i];
19             dp[i]=top;
20         }
21         else top=1,stack1[1]=a[i],dp[i]=top;
22     }
23 }
24 void LDIS(int dp[],int a[])
25 {
26     int top=0;
27     stack1[top]=INF;
28     for(int i=1;i<=n;i++)
29         if(a[i]<stack1[top])
30     {
31         stack1[++top]=a[i];
32         dp[i]=top;
33     }
34     else top=1,stack1[top]=a[i],dp[i]=top;
35 }
36 
37 int dp1[N],dp2[N],dp3[N],dp4[N];
38 int a[N],b[N];
39 
40 int main(void)
41 {
42     int tc;
43     scanf("%d",&tc);
44     while(tc--)
45     {
46         scanf("%d",&n);
47         for(int i=1;i<=n;i++)
48             scanf("%d",a+i),b[n+1-i]=a[i];
49         LCIS(dp1,a);
50         LCIS(dp2,b);
51         LDIS(dp3,a);
52         LDIS(dp4,b);
53         int ans1=0,ans2=0;
54         for(int i=1;i<=n;i++)
55            {
56             ans1=max(ans1,min(dp1[i]-1,dp2[n+1-i]-1));
57             ans2=max(ans2,min(dp3[i]-1,dp4[n+1-i]-1));
58            }
59         printf("%d %d\n",ans1,ans2);
60     }
61     return 0;
62 }

 

内容概要:本文探讨了在MATLAB/SimuLink环境中进行三相STATCOM(静态同步补偿器)无功补偿的技术方法及其仿真过程。首先介绍了STATCOM作为无功功率补偿装置的工作原理,即通过调节交流电压的幅值和相位来实现对无功功率的有效管理。接着详细描述了在MATLAB/SimuLink平台下构建三相STATCOM仿真模型的具体步骤,包括创建新模型、添加电源和负载、搭建主电路、加入控制模块以及完成整个电路的连接。然后阐述了如何通过对STATCOM输出电压和电流的精确调控达到无功补偿的目的,并展示了具体的仿真结果分析方法,如读取仿真数据、提取关键参数、绘制无功功率变化曲线等。最后指出,这种技术可以显著提升电力系统的稳定性与电能质量,展望了STATCOM在未来的发展潜力。 适合人群:电气工程专业学生、从事电力系统相关工作的技术人员、希望深入了解无功补偿技术的研究人员。 使用场景及目标:适用于想要掌握MATLAB/SimuLink软件操作技能的人群,特别是那些专注于电力电子领域的从业者;旨在帮助他们学会建立复杂的电力系统仿真模型,以便更好地理解STATCOM的工作机制,进而优化实际项目中的无功补偿方案。 其他说明:文中提供的实例代码可以帮助读者直观地了解如何从零开始构建一个完整的三相STATCOM仿真环境,并通过图形化的方式展示无功补偿的效果,便于进一步的学习与研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值