首页 > 其他分享 >「杂题乱刷」CF1585B

「杂题乱刷」CF1585B

时间:2023-11-23 20:46:10浏览次数:51  
标签:int CF1585B 最大值 最后 maxn 序列 杂题

原题链接

CF1585B Array Eversion

题目简述

现在有一个长度为 \(n\) 的序列 \(a\),每次操作将 \(a\) 中不大于序列 \(a\) 中最后一个数的元素按照在 \(a\) 序列中的顺序放入 \(b\) 序列中,大于序列 \(a\) 中最后一个数的元素同样按照在 \(a\) 中的顺序放入 \(c\) 序列中,然后再将 \(c\) 序列拼接到 \(b\) 序列的后面,变成新的 \(a\) 序列,求至少需要几次操作才能让 \(a\) 序列不论再进行多少次操作,都不会发生变化。

解题思路

首先,这道题的正解肯定不是模拟。不难想出,让 \(a\) 序列不再变化的时候,\(a\) 序列的最后一位肯定是最大的。而每次操作后的最后一个数字一定是比当前最后一个数字大的最后一个数字,所以我们将最大值和每个数进行比较,如果大于最大值,就将次数加上 \(1\),但是需要注意的是,因为最大值在末尾,所以最终的结果还要减去 \(1\)。

参考代码

#include<bits/stdc++.h>
using namespace std;
#define QwQ return 0
long long t,n,a[1000010],sum,maxn;
int main()
{
	cin>>t;
	for(int i=1;i<=t;i++)
	{
		sum=0,maxn=-1;
		cin>>n;
		for(int i=0;i<n;i++)//依次输入每个数字
			cin>>a[i];
		for(int i=n-1;i>=0;i--)//依次枚举每个数字
			if(a[i]>maxn) //如果大于最大数
				maxn=a[i],sum++; //将最大数重新赋值并将次数加上一
		cout<<sum-1<<endl;//注意,这里要减去一
	}
	QwQ;//华丽的结束
}

标签:int,CF1585B,最大值,最后,maxn,序列,杂题
From: https://www.cnblogs.com/wangmarui/p/17852444.html

相关文章

  • 「杂题乱刷」CF468A
    原题链接CF468A24Game题目简述现在有一个序列\(n\)包含\(n\)个整数\(1\simn\),如果我们能经过加减乘三种操作让这个序列只剩下\(24\),如果可以,输出YES并给出构造方案,否则输出NO。解题思路首先不难看出,如果\(n\)小于\(4\)的话,那么是一定不能构造出方案的,因为无......
  • 「杂题乱刷」洛谷P9515
    原题链接P9515「JOC-1A」限时签到题意简述有一条公路上有\(n\)个商店,每个商店分别在不同的时刻开放,求如何在\(t\)时刻之前到达\(f\)点并且到达最多开放的商店的数量,特别的,一个时刻只能走一格。解题思路这一道题是一道贪心题。首先,因为要在\(t\)时刻之前到达\(f\)......
  • 「杂题乱刷」CF283A
    原题链接CF283ACowsandSequence题目简述给定一个初始为空的序列\(a\),并给出\(3\)种操作方式:将\(a_1\sima_x\)均加上\(y\);将\(a\)序列末尾增加一个正整数\(x\);将\(a\)序列的最后一个数字给去掉;现在要求你求出进行每一次操作后的序列\(a\)的所有数......
  • 「杂题乱刷」洛谷P9253
    题目链接P9253[PA2022]Ornitolog2题目简述给定一个音高序列,输出最少要修改多少整数才能使这个序列成为交替鹡鸰鸟鸣的音高序列。题意分析操作后的音高序列总共有\(2\)种可能:音量由高变低再由低变高;音量由低变高再由高变低。又因为大小范围是\(10^4\times5......
  • 10月杂题
    还是得写写杂题,初三赛季说明这对我是buff啊。这次CSP-S再次检验王者是超级debuff!!!1.P7830[CCO2021]ThroughAnotherMazeDarkly感受一下,每次从根开始绕一圈回去,这个圈会越来越大,直到大小变成\(n-1\)。考虑求出每个边在最后一个圈内入和出的时间(就是欧拉序),你会发现每......
  • 11月杂题
    1.10.30D/qoj6794SequencetoSequence先观察到我们一定是先减后加。因为对于一个数+1-1一定不会改变,但-1+1就会有改变。那对于相邻的+1-1操作,如果不交就直接交换;否则把相交的部分直接删掉,那要么删成两个+1,要么成两个-1,要么是不交的+1-1。如果我们指定一个数减......
  • 9月杂题
    为什么19号了才开始写杂题1.ZJOI2018胖考虑一个新增边能松哪些点。它会被其它新增边影响。感受一下,松的范围一定是一个区间。如果\(|x-x_i|>|x-x_j|\)且\(b_i+|s_x-s_{x_i}|>b_j+|s_x-s_{x_j}|\),\(i\)就松不到\(j\)。二分边界,RMQ判断即可。以左端点为例,\([mid,i]\)......
  • 2023-11-17 杂题乱写
    倍增的英语怎么说。TasksbelowarefinishedyesterdayinYuhuiChe'sroom(Whenhewaswatchinguglygirls.).I'llwritethesolutioninthisblogbecausethecodingworkwasaccomplishedjustnow.CF461ENoBinarySearch.Iflettersin\(\{A,B,C,D\}\......
  • 2023.11.16 近期杂题
    CF1794E我们现在考虑换根dp,维护每个点为根的深度集合。考虑哈希,我们令深度为\(d\)的点贡献是\(base^d\)。那么,\(f_u=1+\sumf_v\timesbase\)。换根时容易的。由于题目给的是大小为\(n-1\)的集合,我们判断两个集合哈希值的差是否是\(base\)的幂即可。CF1799G考虑容斥......
  • 2023.11.12 近期杂题
    CF1657E发现充要条件即为对于每个点\(i\),其与\(1\)的连边为其所有连边中最小的。这\(dp_{i,j}\)表示处理了\(i\)个点,当前与\(1\)连的最大的边长度是\(j\)。\(dp_{i,j}=\sum_{t=1}^{i-1}(\sum_{x=0}^{j-1}dp_{t,x})\timesC_{n-t}^{i-t}\times(k-j+1)^{(i+t-3)(i-t)/......