Codeforces Global Round 2

A

 

 

题解: 枚举每个颜色的头和尾然后最大化另一端

upd:赛时麻烦了,显然答案的一端为头或者尾,枚举另一端即可。

复制代码
#include<bits/stdc++.h>
using namespace std;
 
typedef long long ll;
const int N=1e6+3;
ll n,a[N];
set<ll>q[N];
void Solve()
{
    cin>>n;ll s=0;
    for(int i=1;i<=n;i++)q[i].clear();
    for(int i=1;i<=n;i++)cin>>a[i],q[a[i]].insert(i);
    for(int i=1;i<=n;i++)
    {
        if(q[i].empty())continue;
        ll x=*q[i].begin(),y=*q[i].rbegin(),px=n,py=1;
        while(q[i].count(px))px--;
        while(q[i].count(py))py++;
        s=max(s,max(px-x,y-py));
    }
    cout<<s<<endl;
}
int main()
{
    int T;T=1;
    while(T--)Solve(); 
    return 0;
}
View Code
复制代码

B

一个大小是 $2 \times h$ 的冰箱(就是 2 列 h 行),有 n 个瓶子,高度分别是ai,我们放 k 个瓶子进入冰箱,

上下两个瓶子之间有挡板,且挡板不能将瓶子分割,求出能满足将前 k 个瓶子放入冰箱的最大的 k

posted @   Hanghang007  阅读(19)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示