ABC444 C - Atcoder Riko题解

Atcoder Beginner Contest 444 - C

C - Atcoder Riko

题目传送门 - Atcoder

前言

后天就过年了,这里先提前祝大家:

┬┴┬┌─ ●─┬─  │─┼─┐ ●├─┤○

┴┬┴├┬ ┌─┼─ │◎ │ │ ○└┬┘●

─┼─││ │ │  ││─┴─┴ ──┼──

●│○││ ┴─┼─  │○  ● / │ \

题目大意

💡提示:完整题目翻译见 ABC444 - C 翻译

有一盒 A t C o d e r AtCoder AtCoder 公司推出的 A t C o d e r i k o AtCoderiko AtCoderiko 零食,我们可以简单的理解为巧克力棒。有个大神经高桥,闲的没事摇晃装在杯子里的巧克力(每根长度为 l l l ),每根巧克力摇晃后都会处在以下两种状态之一:

  • 保持长度为 l l l (巧克力没有断)

  • 断裂成两根长度之和为 l l l 的巧克力棒(你怎么能忍心对巧克力棒下毒手,巧克力棒多可爱呀)

思路

可以分类讨论本题,一共有两种情况:

  • 杯子中的每一根巧克力棒都惨遭毒手

    如果这样, max ⁡ i a [ i ] \max_i a[i] maxia[i] 和 min ⁡ i a [ i ] \min_i a[i] minia[i] 必然可以匹配为一根巧克力棒,所以 l l l 为 max ⁡ i a [ i ] + min ⁡ i a [ i ] \max_i a[i]+\min_i a[i] maxia[i]+minia[i]

  • 杯子里至少有一个幸运儿

    如果是这个样子,与 max ⁡ i a [ i ] \max_i a[i] maxia[i] 相等的数一定没有进行分裂, l l l 不能大于序列的最大值,所以 l l l 为 max ⁡ i a [ i ] \max_i a[i] maxia[i]

实现

考虑先进行降序排序:

cpp 复制代码
sort(a+1,a+n+1);

然后写 s o l v e ( l l ) solve(ll) solve(ll) 函数, l l ll ll 表示确定的 l l l ,双指针计算是否满足条件

cpp 复制代码
int solve(int ll){
	int l=1,r=n,f=1;
	while(l<=r){
		if(a[r]==ll){
			r--;
		}else if(a[r]+a[l]==ll&&r!=l){
			l++,r--;
		}else{
			f=0;
			break;
		}
	}
	return f;
}

最后判断,输出即可

AC代码

cpp 复制代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int a[300010];
int n;
int solve(int ll){
	int l=1,r=n,f=1;
	while(l<=r){
		if(a[r]==ll){
			r--;
		}else if(a[r]+a[l]==ll&&r!=l){
			l++,r--;
		}else{
			f=0;
			break;
		}
	}
	return f;
}
signed main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	sort(a+1,a+n+1);
	if(solve(a[n]))cout<<a[n]<<" ";
	if(solve(a[1]+a[n]))cout<<a[1]+a[n];
	return 0;
}

AC记录

!!!再见了,大家新年快乐!!!

相关推荐
云栖梦泽几秒前
Linux内核与驱动:3.驱动模块传参,内核模块符号导出
linux·服务器·c++
寒月小酒几秒前
3.29+3.30
数据结构·算法
Flying pigs~~几秒前
基于Bert的模型迁移文本分类项目
人工智能·深度学习·算法·大模型·nlp·bert
ZoeJoy82 分钟前
算法筑基(六):分治算法——大事化小,小事化了
算法·排序算法·动态规划·哈希算法·图搜索算法
美式请加冰5 分钟前
BFS算法(下)
算法·宽度优先
少许极端5 分钟前
算法奇妙屋(三十七)-贪心算法学习之路4
学习·算法·贪心算法·田忌赛马
We་ct6 分钟前
LeetCode 373. 查找和最小的 K 对数字:题解+代码详解
前端·算法·leetcode·typescript·二分·
Ricky_Theseus9 分钟前
探索群体智慧:蚁群算法(ACO)从原理到实践——python实现
python·算法·机器学习
Rabitebla15 分钟前
排序算法专题(一):插入排序 & 希尔排序
数据结构·算法·排序算法
南境十里·墨染春水8 小时前
C++传记(面向对象)虚析构函数 纯虚函数 抽象类 final、override关键字
开发语言·c++·笔记·算法