CF1343C
题目简化和分析:
给您一个序列,您要在其中选择若干个数使得:
- 相邻两数异号
- 长度最大,总和最大
我们可以牢牢抓住长度且总和最大,这一特性。
说明我们必须在每一个连续的同号的子串中被迫选择最大的,以满足这一属性。
例如,样例 \(1,2,3,-1,2\) 被我们分割成了 \(1,2,3\) 和 \(-1,-2\) 两个子串,为满足最大从中选择 \(3\) 和 \(-1\) 两个数。
本题涉及算法:贪心。
Solution:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef double db;
const int N=2e5+50;
const int M=1e5+50;
inline ll read(){
ll x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
return x*f;
}
ll t,n;
ll a[N];
int main()
{
t=read();
while(t--){
n=read();
for(int i=1;i<=n;++i) a[i]=read();
ll l=a[1]>0?1:-1,ans=0,maxn=a[1];
for(int i=2;i<=n;++i){
ll res=a[i]>0?1:-1;
if(res==l) {
maxn=max(maxn,a[i]);
}else{
ans+=maxn;
maxn=a[i];
l=res;
}
}
ans+=maxn;
printf("%lld\n",ans);
}
return 0;
}
CF1343C的更多相关文章
- CF #636 (Div. 3) 对应题号CF1343
unrated 选手悠闲做题,然后只做出四个滚蛋了 符合 div3 一贯风格,没啥难算法 E最后就要调出来了,但还是赛后才A的 CF1343A Candies 传送门 找到一个 \(x\),使得存在一 ...
随机推荐
- uniapp-chatgpt跨端仿ChatGPT实例|uniapp+vue3+pinia多端聊天模板
基于uniapp+vite4+pinia跨多端实现chatgpt会话模板Uniapp-ChatGPT. uni-chatgpt 使用uni-app+vite4+vue3+pinia+uview-plu ...
- IOS开发-UIImageView基本用法
UIImageView是iOS中用于显示图像(图片.gif.svg等)的视图. 它的主要功能有: 1. 显示图片UIImageView可以通过image属性显示一张UIImage类型的图片.可以是本地 ...
- Nginx使用Lua脚本加解密RSA字符串
本文主要介绍使用Lua脚本对采用RSA加密后的字符串进行解密的过程. 使用第三方类库lua-resty-rsa,参考地址:https://github.com/spacewander/lua-rest ...
- 【Shell】ps 命令
ps 命令 Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器. 1. ps 常用的命令 ps -aux #显示所有进程信息 ...
- 利用shell脚本交互式运行jar任务
如题,废话不多说,直接上代码: #!/bin/bash APP_PATH=/root/bigdata/neural_networks/width_control_model/predict/uploa ...
- nrm工具
nrm 工具 nrm(npm registry manager)是npm镜像源管理工具.可快速帮助查看.切换.管理npm镜像源. 安装 npm install -g nrm 查看 nrm ls 切换 ...
- String s=new String(“hello”)的执行过程
一. 介绍 String 是Java.long包下的String类,是一个特殊的引用类型,用于表示字符串.它提供了许多方法来操作和处理字符串,比如连接.截取.查找.替换等.String类内部使用字符数 ...
- 策略模式+Spring配置类优化多if..else思路
图示 1. 现状 场景: 假设设备上报不同类型的消息,我们要对不同类型的消息做不同的处理.如果我们通过if..else的方式处理的话会显得比较冗余. 例如: if("alarmEvent&q ...
- ASP.NET WebForm中在TextBox输入框回车时会触发其他事件,如何处理?
一.TextBox在输入框回车时会触发其他事件,如何解决? 前台代码: <ul> <li><span>名称:</span><asp:TextBox ...
- 关于 Task 简单梳理(C#)【并发编程系列】
〇.前言 Task 是微软在 .Net 4.0 时代推出来的,也是微软极力推荐的一种多线程的处理方式. 在 Task 之前有一个高效多线程操作类 ThreadPool,虽然线程池相对于 Thread, ...