2023noip赛前20天冲刺 Day7 原神场

发布时间 2023-10-18 16:27:43作者: RoFtaCD

不愧是花花 /cf

溜大了(100+60+50+0)

哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?哇袄?

都是原题,那没必要密码了。

A.仙客来

给定 \(n\) 个整数 \(a_i\), 中间用加减号隔开. 你可以在里面任意添加括号, 求能得到的最大结果是多少.

水题,直接贪心即可。

F - チーム分け

#include <bits/stdc++.h>
#define each(i,a,b) for(int i=(a);i<=(b);++i)
#define eachr(i,a,b) for(int i=(a);i>=(b);--i)
typedef long long ll;
using namespace std;
constexpr int N=1e5+15;

inline int rd(){
	int w=1,r=0;char c=getchar();
	while(!isdigit(c)) (c=='-')and(w=-1),c=getchar();
	while(isdigit(c)) r=r*10+(c^48),c=getchar();
	return r*w;
}
int n,a[N],tt=1;
ll s[N],ans,sum;

int main(){
	scanf("%d",&n);
	each(i,1,n) a[i]=rd();
	each(i,1,n){
		if(a[i]>=0 && a[i-1]>=0) s[tt]+=a[i];
		else s[++tt]=a[i];
	}
	each(i,1,tt) sum+=abs(s[i]);
	each(i,1,tt-1){
		if(s[i]<0 && s[i+1]>=0) ans=max(ans,sum-2*(-s[i]+s[i+1])),sum+=2*s[i];
		if(s[i]<0 && s[i+1]<0) ans=max(ans,sum-2*(-s[i])),sum+=2*s[i];
	}
	printf("%lld\n",ans);
	return 0;
}

B.白兰花