首页 > 其他分享 >CF1499E Chaotic Merge

CF1499E Chaotic Merge

时间:2024-07-31 19:20:10浏览次数:13  
标签:Chaotic rep texttt Merge add CF1499E && ans neq

对于 \(l_1=1,r_1=1\) 的情况,设 \(f_{i,j,0/1,S}\) 表示 \(\texttt{x}\) 串考虑了前 \(i\) 个位置,\(\texttt{y}\) 串考虑了前 \(j\) 个位置,且最后一个位置选了 \(\texttt{x}\) 串还是 \(\texttt{y}\) 串,选的串的集合为 \(S\) 的方案数。

转移显然。答案为 \(\sum_{i=1}^n\sum_{j=1}^mf_{i,j,0/1,3}\)。

对于 \(l_1\neq 1\) 或 \(r_1\neq 1\) 的情况,我们所有 \((i,j)\) 满足 \(i\neq 0\) 或 \(j\neq 0\) 进行初始化,设 \(f_{i,j,0,1}=1\) 和 \(f_{i,j,1,2}=1\),表示从这里开始多了一个新串。

“初始化”的步骤值得借鉴。

int main()
{
	scanf("%s%s",x+1,y+1);
	n=strlen(x+1),m=strlen(y+1);
	rep(i,0,n) rep(j,0,m)
	{
		if(i<n) f[i+1][j][0][1]=add(f[i+1][j][0][1],1);
		if(j<m) f[i][j+1][1][2]=add(f[i][j+1][1][2],1);
		rep(S,0,3)
		{
			if(i<n&&i>0&&x[i+1]!=x[i]) f[i+1][j][0][S|1]=add(f[i+1][j][0][S|1],f[i][j][0][S]);
			if(i<n&&j>0&&x[i+1]!=y[j]) f[i+1][j][0][S|1]=add(f[i+1][j][0][S|1],f[i][j][1][S]);
			if(j<m&&i>0&&y[j+1]!=x[i]) f[i][j+1][1][S|2]=add(f[i][j+1][1][S|2],f[i][j][0][S]);
			if(j<m&&j>0&&y[j+1]!=y[j]) f[i][j+1][1][S|2]=add(f[i][j+1][1][S|2],f[i][j][1][S]);
		} 
	}
	int ans=0;
	rep(i,1,n) rep(j,1,m) ans=add(ans,f[i][j][0][3],f[i][j][1][3]);
	printf("%d\n",ans);
	return 0;
}

标签:Chaotic,rep,texttt,Merge,add,CF1499E,&&,ans,neq
From: https://www.cnblogs.com/UperFicial/p/18335271

相关文章

  • MySQL优化器derived_merge
    衍生表的优化:合并|具化一、mysql优化器对于衍生表的优化处理可以从两方面进行:将衍生表合并到外部查询将衍生表具化为内部临时表1、示例1:SELECT * FROM (SELECT * FROMt1) ASderived_t1;衍生表 derived_t1合并处理后,实际执行的查询类似如下:SELECT......
  • 如何利用Git进行代码Branch merge
    如果你想将一个分支(比如叫做other-branch)上的提交合并到另一个新的分支(比如叫做new-branch)上,你可以使用以下几种方法:方法1:使用gitmerge首先,确保你在new-branch上:gitcheckoutnew-branch然后,使用gitmerge命令将other-branch上的更改合并到new-branch上:gi......
  • 远程git仓库,merge其他分支到master分支
    第一步,本地编辑器开发分支合到对应想merge的分支。比如把本地insure_gly,merge到dev分支并push到远程dev仓库 第二步,远程git仓库,选择对应项目,创建merge请求   ......
  • C#实现MergeSort算法
    publicclassMergeSortLearn{///<summary>///分治递归///</summary>///<paramname="oriArray"></param>///<returns></returns>publicstaticdouble[]MergeSort(double[]oriArray){......
  • The Emergence of Objectness: Learning Zero-Shot Segmentation from Videos 论文详
    TheEmergenceofObjectness:LearningZero-ShotSegmentationfromVideos文章目录TheEmergenceofObjectness:LearningZero-ShotSegmentationfromVideos前言摘要1Introduction具体分析1具体分析2具体分析32相关工作3通过外观-运动分解分割具体分析43.1......
  • 多人合作使用项目使用子模块替代merge繁琐合并
    问:我的main分支的b文件夹只想放b分支的b文件夹里的文件,并且希望b分支更改后我这边也自动更新,请问怎么是实现你希望 main 分支中的 b 文件夹自动保持与 b 分支中的 b 文件夹同步。可以使用子模块(submodule)来实现这种效果。这种方法允许你在一个仓库中包含另一个仓库,并且......
  • Git提交时出现Merge branch ‘master‘ of ...之解决方法
    参考文章:https://gitcode.csdn.net/65ea8a4f1a836825ed794712.html?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTQ1MTY5NywiZXhwIjoxNzIxMjkxNTE4LCJpYXQiOjE3MjA2ODY3MTgsInVzZXJuYW1lIjoibWFudG91eW91eW91In0.-wDA8k8JLiSglywMGl6-Q1FSLkDiWW9_spoG16tpdtA......
  • MySQL中为什么要使用索引合并(Index Merge)?
    本文分享自华为云社区《【华为云MySQL技术专栏】MySQL中为什么要使用索引合并(IndexMerge)?》,作者:GaussDB数据库。在生产环境中,MySQL语句的where查询通常会包含多个条件判断,以AND或OR操作进行连接。然而,对一个表进行查询最多只能利用该表上的一个索引,其他条件需要在回表查询时进......
  • Grind 75 | 3. merge two sorted lists
    Leetcode21.合并两个有序链表题目链接思路:和归并排序中merge部分一致两个指针分别指向2个链表头每次选小的那个加入res中,对应指针后移一位;重复步骤2,直至一个指针到链表末尾将另一个剩余的全部copy到res中,链表只需要修改末尾结点指向链表添加结点操作......
  • Merge Not Sort
    先来讲一下我的做法在考虑特殊元素无果之后,我们尝试模拟法,即模拟什么时候从放一个序列的元素变成放另一个序列的元素由于对称性,我们不妨假设最开始放的\(A\)那么就有\(A[1]<B[1]\),假设指针一直到\(i\),则\(A[i]>B[1]\),然后\(A[1\)~\(i-1]\)都被放入了连续的一段,接下来再放\(B\)......