首页 > 其他分享 >P3501 [POI2010]ANT-Antisymmetry

P3501 [POI2010]ANT-Antisymmetry

时间:2022-08-30 13:55:07浏览次数:64  
标签:子串 slen ss POI2010 取反 ANT int P3501 mx

定义一个01串是反对称子串当将原串取反后和原串一样。求串的反对称子串个数。\(|S|\leq 5\times 10^5\) 。


设 \(s[i],s[j]\) 是反对称子串中对应的字符

1.若子串长度为奇数,则存在 \(i=j\) 的一组情况,又 \(s[i]\) 取反 \(==s[j]\) 所以矛盾

2.子串长度为偶数, \(s[i]\) 取反 \(==s[j]\) ,所以对于一个长度偶数的串,对应位置上的数取反符合条件。将马拉车的代码修改一下即可。

#include<bits/stdc++.h>
using namespace std;

char s[1000005],ss[1000005];
int slen,mx,id,p[1000005];
long long ans;

int main()
{
	scanf("%d",&slen);
	scanf("%s",s+1);
	slen=strlen(s+1);
	ss[0]='*';ss[2*slen+1]='#';ss[2*slen+2]='!';
	for(int i=1;i<=slen;++i)
	{
		ss[2*i-1]='#';
		ss[2*i]=s[i];
	}
	slen=2*slen;
	for(int i=1;i<=slen;i+=2)
	{
		p[i]=i>mx?1:min(p[id*2-i],mx-i);
		while(ss[i-p[i]]+ss[i+p[i]]-'0'-'0'==1 || (ss[i-p[i]]==ss[i+p[i]] && ss[i-p[i]]=='#'))
			++p[i];
		if(i+p[i]>mx)
		{
			mx=i+p[i];
			id=i;
		}
		ans+=(p[i]-1)/2;
	}
	printf("%lld",ans);
	return 0;
}

标签:子串,slen,ss,POI2010,取反,ANT,int,P3501,mx
From: https://www.cnblogs.com/zhouzizhe/p/16639043.html

相关文章

  • Vite 按需引入 Ant Design Vue 3.0
    Vite按需引入AntDesignVue3.0第一步下载:npmiunplugin-vue-components-D需要注意的是:Vite你可以用unplugin-vue-components来进行按需加载。但是此插件无法处......
  • gym-103708B Building 5G antennas
    Building5Gantennasdfs剪枝要字典序最小,显然第一个点就是\(1\),后面考虑走\(k\)步后能到达的点集中选一个字典序最小的,重复该过程考虑\(set[i][j]\)表示第\(i\)......
  • HomeAssistant接入HomeKit与简要介绍
      在HomeAssistant中接入HomeKit后可以使用iPad或iPhone的家庭App控制已接入HA的设备,如HA接入了很多小米智能家居设备,HA接入HomeKit后就可以使用苹果自带的家庭App控制已......
  • 3D高级渲染器Artlantis Studio
    ArtlantisStudio2021forMac是Mac平台上一款专业的3D高级渲染器,artlantismac专为设计师和建筑师所设计,能够为您快速创建出VR全景,动画和3D等效果。artlantis202凭借着......
  • Artlantis studio 2021.2 for Mac(3D渲染工具)
    Artlantisstudio2021forMac是Mac平台上一款专业的3D高级渲染器,artlantismac版专为设计师和建筑师所设计,能够为您快速创建出VR全景,动画和3D透视图等效果。artl......
  • 【题解】CF1007D Ants
    传送门题意:有\(m\)对链,每对链要选择一条,使得选择的链两两不交,求一组方案。题解:一眼看上去就是一个2-sat,考虑一种暴力的做法,枚举每一条边,覆盖这条边的链两两连边。......
  • ant-design上传组件方法beforeUpload返回false或promise.reject仍然失效
    问题描述:在使用antdesign框架的Upload上传组件时,相信很多人做过上传文件的格式、大小、数量、或其他依赖条件等的限制,这些限制一般都是需要在beforeUpload方法中进行处理......
  • MySQL在grant时报错ERROR 1064 (42000)
    网上查到的grant方式大多会报错,主要原因是MySQL版本8.0后不能再使用原来的方式查询MySQL版本SELECTversion();在8.0版本下grantallprivilegesontest.*tote......
  • 蚂蚁发布(AntDeploy)net应用开源一键部署工具视频(完结)
    一键部署.net应用插件介绍(iis,linux服务,docker部署,镜像发布)AntDeploy(蚂蚁发布)一键打包容器镜像AntDeploy(蚂蚁发布)一键docker容器化部署AntDeploy(蚂蚁发布)......
  • antdesign vue中写了样式不加载的解决方法
    在vue组件里,lang设置为less,在style设置为scoped的时候,在写样式有时候对子组件不生效。如果想让某些样式对子组件生效,可以使用/deep/深度选择器。代码:/deep/.ant-men......