首页 > 其他分享 >C1. Good Subarrays (Easy Version)

C1. Good Subarrays (Easy Version)

时间:2024-02-13 11:44:05浏览次数:27  
标签:Good int Subarrays long Version Easy C1

image
image
image

找子数组的个数

双指针

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=2e5+10;
int a[N];
void solve(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	int l=1,r=1;
	int ans=0;
	while(l<=r){
		if(l>n||r>n)break;
		while(a[r]<r-l+1)l++;
		ans+=r-l+1;
		r++;
	}
	cout<<ans<<"\n";
}
signed main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	int t=1;
	cin>>t;
	for(int i=1;i<=t;i++)solve();
	return 0;
} 

标签:Good,int,Subarrays,long,Version,Easy,C1
From: https://www.cnblogs.com/yufan1102/p/18014453

相关文章

  • [ARC171E] Rookhopper's Tour 题解
    题目链接首先把\(m=2\)和\(m\)为奇数的情况判掉,由于我们要对合法的摆放方案计数,而一个摆放方案要判断合法性就必须通过一组合法的移动过程,对移动的状态进行记录以此转移和优化显然没啥前途,因此我们考虑摆放方案和移动过程之间的联系。一个比较显然的观察是摆放方案和移动过......
  • D. Good Trip
    原题链接题解1.把分数中的除法用乘以逆元表示,在求模运算里的除法都可以用乘以逆元代替(如果除法的结果为整数),但是这里规定了可以用其表示,那就用其表示2.读题code#include<bits/stdc++.h>intmod=1e9+7;//确保mod是一个整数usingnamespacestd;//快速幂函数,计算base......
  • CF316G3 Good Substrings
    题意简述有一个字符串\(s\)和\(n\)条限制,每条限制给出字符串\(t_i\)和两个整数\(l_i,r_i\),要求一个字符串要满足在\(t_i\)中的出现次数要在\([l_i,r_i]\)之间。求\(s\)有多少本质不同的子串满足所有限制。\(|s|,\max|t|\le5\times10^4,n\le10\)分析“本质不同......
  • Educational Codeforces Round 145 (Rated for Div. 2)C. Sum on Subarrays(构造)
    很意思的一道构造题题意:给一个\(n、k\),让构造长度为n的数组满足,子数组为整数的个数为k个,负数的为\(k-(n+1)*n/2\),每个数的范围为\([-1000,1000]\)这种构造题可以考虑就是前一段可以一直用一样的、最小的。我们观察可以发现\(k+k-(n+1)*n/2=(n+1)*n/2\)也就是所有子数组......
  • ARC171 - sol
    感觉难度并不大,但是就是做不起,呜呜呜。中等题练少了是这样的。AtCoderRegularContest171-AtCoderA-NoAttackingThereisachessboardwith\(N\)rowsand\(N\)columns.Let\((i,j)\)denotethesquareatthe\(i\)-throwfromthetopandthe\(j\)-thco......
  • [ABC327G] Many Good Tuple Problems 题解
    Description对于一对长度均为\(M\)且元素值在\(\left[1,N\right]\)之间的序列\((S,T)\),定义其为好的当且仅当:存在一个长度为\(N\)的\(01\)序列\(X\),使得其满足如下条件:对于任意\(i\in\left[1,M\right]\),有\(X_{S_i}\neqX_{T_i}\)。给定\(N,M\),求在......
  • [ARC171] A~D 题解
    [ARC171]A~D题解A.NoAttacking最优策略是车隔行放,分讨一下就可以了。if(n<a)cout<<"No\n";else{if(a*2<n)b-=(a+1)*(n-a);else{b-=(n-a)*(n-a);if(b<=0)cout<<"Yes\n";......
  • 2.5 響け恋の歌 ——ARC107~109
    我猜是小小恋歌赞助了这个系列!由于懒得再把细节回想一遍所以会比较概括。但是总体做法保真。ARC107DNumberofMultisets考虑DP:\(f(i,j)\)表示\(i\)个数凑成\(j\)的方案数。那么我们可以枚举最大数的幂次,容易发现只是\(O(\logn)\)的。然后枚举了之后发现是一个类似......
  • [ARC135D] Add to Square 题解
    题目链接点击打开链接题目解法很牛的题!!!先考虑一步很牛的转化:把矩阵黑白染色,且\(i+j\)为奇数的位置的值取反,每次操作变为左上右下\(+v\),左下右上\(-v\)这样有啥好处?操作不会使行和列的和改变考虑答案的下界显然是:\(\max\{\)行的绝对值之和,列的绝对值之和\(\}\)这里给出......
  • 题解 ARC171D【Rolling Hash】
    来补题了。昨天赛时想法是对的,代码写错了,没调过太可惜了。显然\(P>n\)时必定有解。设前缀\([1,i]\)的哈希值为\(s_i\),显然\([l,r]\)的哈希值不为\(0\)的充要条件是\(s_{l-1}\nes_r\)。建立一个点的编号为\(0\simn\)的图,对于每个输入的区间\([l,r]\),连接一条边......