【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;
	
}

结果

相关推荐
djimon2 分钟前
06年老电脑复活Ubuntu14.04配置Python网站爬自动化
开发语言·python·自动化
郝学胜-神的一滴6 分钟前
深入解析Mipmap层级判定原理:从理论到实践
c++·unity·godot·游戏程序·图形渲染·unreal engine
雾岛听蓝6 分钟前
探索C++继承机制
开发语言·c++
过河卒_zh156676611 分钟前
情感型AI被“立规矩”,AI陪伴时代进入下半场
人工智能·算法·aigc·生成式人工智能·算法备案
人道领域18 分钟前
【零基础学java】(等待唤醒机制,线程池补充)
java·开发语言·jvm
wefg120 分钟前
【算法】动态规划
算法·动态规划
名字不好奇20 分钟前
在C++中 如何实现java中的Stream
java·c++
智算菩萨21 分钟前
【Python自然语言处理】基于NLTK库的英文文本词频统计系统实现原理及应用
开发语言·python·自然语言处理
superman超哥24 分钟前
Rust 异步并发核心:tokio::spawn 与任务派发机制深度解析
开发语言·rust·编程语言·rust异步并发核心·rust任务派发机制
喵星人工作室24 分钟前
C++传说:神明之剑0.2.1
开发语言·c++·游戏