首页 > 其他分享 >ABC294 E

ABC294 E

时间:2024-01-14 19:35:37浏览次数:27  
标签:int l2 b1 b2 序列 ldots ABC294

原题题面

题意

我们有一个行数为 \(2\) 列数为 \(L\) 的网格。让 \((i,j)\) 表示从上面 \((i\in\lbrace1,2\rbrace)\) 起第 \(i\) 行和从左边 \((1\leq j\leq L)\) 起第 \(j\) 列的正方形。\((i,j)\) 上写有一个整数 \(x _ {i,j}\)。

求有多少个整数\(j\)使得\(x _ {1,j}=x _ {2,j}\).

这里,\(x _ {i,j}\) 的描述是将 $(x _ {1,1},x _ {1,2},\ldots,x _ {1,L}) $ 和 $ (x _ {2,1},x _ {2,2},\ldots,x _ {2,L})$ 分别压缩成长度为 \(N _ 1\)和\(N _ 2\)的序列:\(((v _ {1,1},l _ {1,1}),\ldots,(v _ {1,N _ 1},l _ {1,N _ 1}))\) 和 \(((v _ {2,1},l _ {2,1}),\ldots,(v _ {2,N _ 2},l _ {2,N _ 2}))\)。

这里,序列 \(A\) 的运行长度压缩是由 \(A\) 的元素 \(v _ i\) 和正整数 \(l _ i\) 组成的成对序列 \((v _ i,l _ i)\),如下所示。

  1. 在每对不同的相邻元素之间拆分 \(A\)。
    1. 对于分割后的每个序列 \(B _ 1,B _ 2,\ldots,B _ k\) ,设 \(v _ i\) 是 \(B _ i\) 的元素,\(l _ i\) 是 \(B _ i\) 的长度。

思路

可以用两个指针分别指向第 \(1、2\) 行当前这一块的最后一个元素,再用两个变量分别记录第 \(1、2\) 行指针搜走过的地方即可

代码

#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=1e5+5;
int a1[N],b1[N],a2[N],b2[N];
signed main(){
    int l,n,m;cin >> l >> n >> m ;
	for(int i=1;i<=n;i++)cin>>a1[i]>>b1[i];
	for(int i=1;i<=m;i++)cin>>a2[i]>>b2[i];
	int i=1,j=1,l1=b1[1],l2=b2[1],ans=0;
	while(i<=n && j<=m){
		if(a1[i]==a2[j]){
			int x=l1-b1[i],y=l2-b2[j];
			ans+=max(0ll,min(l1,l2)-max(x,y));
		}
		if(l1>=l2) l2+=b2[++j];
		else l1+=b1[++i];
	}
	cout<<ans;
	return 0;
}

标签:int,l2,b1,b2,序列,ldots,ABC294
From: https://www.cnblogs.com/williamYcY/p/17964050

相关文章

  • ABC294 D
    题面连接题意给定\(n\)个人,这\(n\)个人的身份证为\(1,2,...,N\)现在会发生\(Q\)件事:1:出纳员会呼叫身份证最小且没有被呼叫过人的身份证号2x:身份证号为\(x\)的人会第一次来出纳处3:输出身份证号最小且没呼叫过且没有来的人的身份证号思路容易发现,其实可以用......
  • AtCoder ABC294 F - Sugar Water 2
    AtCoderABC294F-SugarWater2题意有\(2\)排糖和水。第\(1\)排有\(N\)瓶糖和\(N\)瓶水。糖分别有\(A_i\)克,水分别有\(B_i\)克。第\(2\)排有\(M\)瓶糖和\(M\)瓶水,糖分别有\(C_i\)克,水分别有\(D_i\)克。若要从第\(1\)排糖水中找到\(A_i\)克糖和......
  • [ABC294F] Sugar Water 2
    题面翻译高橋君有\(N\)瓶糖水,青木君有\(M\)瓶糖水。高橋君的第\(i\)瓶糖水有\(A_i\)份糖\(B_i\)份水。青木君的第\(i\)瓶糖水有\(C_i\)份糖\(D_i\)份水......
  • 题解 ABC294G【Distance Queries on a Tree】
    DFS序树状数组。不妨以\(1\)为根,设\(\operatorname{dep}(u)\)表示\(u\)到根路径的边权和,\(\operatorname{dis}(u,v)\)表示\(u,v\)间路径的边权和,\(\operatornam......
  • 【AT_abc294_g 题解】
    题意给定一颗\(n\)个节点的带权无向树。给出\(q\)个操作:1iw:把第\(i\)条边的边权变成\(w\)。2uv:求\(u\tov\)简单路径的边权和。解法根据树上差分。......
  • abc294G
    UpdG看上好模板的样子,果然是个模板题好题,首先考虑这张图的\(Euler\Tour\),简单点说,就是dfs一遍,把每个点入栈出栈顺序存起来,举个例子·21223这棵树的......
  • [ABC294Ex] K-Coloring
    考虑dfs后搞出dfs树,考虑若干返祖边有限制,那么,我们一个朴素的想法是枚举这些有被返祖边搞到的点的颜色,但这样最坏是\(O(K^n)\)的。但显然一条返祖边在钦定完一个端点......
  • 【题解】ABC294
    AtCoderBeginnerContest294AFilter无意义题,找出所有偶数。BASCIIArt无意义题,按题意模拟。CMergeSequences无意义题,离散化即可。DBank无意义题,set维护即......