【CSP CCF记录】数组推导

题目

过程

思路

每次输入一个Bi即可确定一个Ai值,用temp记录1~B[i-1],的最大值分为两种情况:

  1. 当temp不等于Bi时,则说明Bi值之前未出现过,Ai必须等于Bi才能满足Bi是Ai前缀最大的定义。
  2. 当temp等于Bi时,则说明Bi值之前已经出现过,此时Ai最小为0,最大为Bi。

最大值big和最小值small根据不同情况相加。

代码

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int n;
int B[100010];
int main()
{
	cin>>n;
	int big=0;
	int small=0;
	int temp=0;//当前最大值 
	for(int i=1;i<=n;i++)
	{
		cin>>B[i];
		
		if(temp!=B[i]) 
		{
			big+=B[i];
			temp=B[i];
			small+=temp; 
		}
		else
		{
			big+=temp;
			small+=0;
		}
		
	}
	cout<<big<<endl;
	cout<<small<<endl;
	
}

结果

相关推荐
噜噜噜噜鲁先森2 分钟前
STL——String类
开发语言·c++·算法
Severus_black3 分钟前
算法题C——用队列实现栈/用栈实现队列
c语言·数据结构·算法·链表
沐知全栈开发4 分钟前
Bootstrap 下拉菜单
开发语言
谭欣辰7 分钟前
详细讲解 C++ 有向无环图(DAG)及拓扑排序
c++·算法·图论
XS0301067 分钟前
Java 基础(七)多态
java·开发语言
不知名的老吴9 分钟前
一文读懂:单例模式的经典案例分析
java·开发语言·单例模式
欧米欧9 分钟前
C++算法之双指针算法
开发语言·c++
承渊政道12 分钟前
【递归、搜索与回溯算法】(掌握记忆化搜索的核心套路)
数据结构·c++·算法·leetcode·macos·动态规划·宽度优先
REDcker12 分钟前
跨平台编译详解 工具链配置与工程化实践
linux·c++·windows·macos·c·跨平台·编译
天天进步201513 分钟前
Python全栈项目实战:自建高效多媒体处理工具
开发语言·python