【二分】【hash】ANT-Antisymmetry(luogu P3501)

本文介绍了一种使用二分查找与哈希技术解决回文子串问题的方法,通过预处理字符串生成哈希值数组,利用二分查找优化搜索过程,实现了高效的回文子串匹配。

前言:

妈耶,这道题写了一天,皇室我****


题目:

在这里插入图片描述


思路:

这题用二分+hash
先弄一个check函数,用来搞回文
然后二分。


CodeCodeCode码风嘤嘤嘤):

#include <cstdio>
#include <iostream>
#define ll long long

using namespace std;

ll mid , r , l , sum , maxn  , n , e ;
ll zo [5000001] , h1[5000001] , h2[5000001];
string str;

const ll INF = 233333;

void swap (int x, int y)//交换函数
{
	int t;
	t = x , x = y , y = t;
}
bool pd (ll l, ll r, ll m)//check搞回文
{
	ll le,ri,hw1,hw2;
    hw1 = l + m - 1;//左
    hw2 = r + m - 1;//右
	le = h1[hw1] - h1[l - 1];//回文
	ri = h2[hw2] - h2[r - 1];
	if (l > r)//如果l比r大
	{
		swap (le,ri);//交换
		swap (l , r);
	}
	le *= zo[r - l];
	return le == ri;//确保le == ri
}
int main()
{
	scanf("%lld",&n);
	cin>>str;
	zo [0] = 1;	
	for (int i = 1; i <= n; ++i) zo[i] = zo[i - 1] * INF;
	for (int i = 1; i <= n; ++i) h1[i] = h1[i - 1] + str[i - 1] * zo[i] ;
	for (int i = 1; i <= n / 2; ++i) swap(str[i - 1],str[n - i]);//枚举中间
	for (int i = 1; i <= n; ++i) if(str[i - 1] == '0') str[i - 1] = '1';else str[i - 1] = '0';
	for (int i = 1; i <= n; ++i) h2[i] = h2[i - 1] + str[i - 1] * zo[i] ;
	for (int i = 2; i <= n; ++i)
	    {
		    l = 1;
			e = n - i + 2;
			r = min(n - i + 1,n - e + 1);
			maxn = 0;
			while (l <= r)//二分模板
			{
				mid = (l + r) >> 1;
		        if(pd(i ,e ,mid)) 
		        {
		        	maxn = max(maxn,mid);
		        	l = mid + 1;
		        }
		        else r = mid - 1;
			}   
			sum += maxn;
    	}
    	printf("%lld",sum);
    	return 0;
}
内容概要:本文提出了一种针对大规模电动汽车接入电网的双层优化调度策略,并基于IEEE33节点系统进行了建模与仿真分析,配套提供了完整的Matlab代码实现。该策略构建了上层电网运行优化与下层电动汽车充电调度的双层协同模型,综合考虑电网负荷削峰填谷、电压稳定性维持以及电动汽车用户充电需求满足等多重目标,采用先进的优化算法实现对电动汽车集群的智能有序调度。研究详细阐述了双层模型的构建逻辑、目标函数设计、约束条件设定及迭代求解流程,有效降低了电网峰谷差,提升了配电系统对可再生能源的消纳能力,兼具扎实的理论深度与明确的工程应用前景。; 适合人群:电气工程、电力系统及其自动化、能源系统优化等相关专业的研究生、科研人员以及从事智能电网、电动汽车调度、分布式能源管理等领域工作的工程师和技术人员。; 使用场景及目标:①深入研究高比例电动汽车接入对配电网运行特性的影响机制;②掌握电力系统双层优化建模方法及其在实际系统中的求解技巧;③实现电动汽车集群的协同调度与车网互动(V2G)优化控制;④作为撰写学术论文、开展课题研究或复现高水平期刊成果的技术参考与代码基础。; 阅读建议:建议读者结合所提供的Matlab代码逐行理解双层优化模型的数学表达与程序实现细节,重点剖析上下层模型之间的信息交互机制与收敛判据,可通过调整电动汽车渗透率、充电行为参数或引入分布式电源等场景进行拓展性仿真,以深化对智能调度策略适应性的认识。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值