skyang. 2022-12-04 20:51 采纳率: 0%
浏览 12

洛谷p6332 求指问题

#洛谷P6332 [COCI2007-2008#1] PRINOVA

习题链接:https://www.luogu.com.cn/problem/P6332

八十分代码,目前问题未解决,请各位指教。

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
 
int main()
{
    typedef long long ll;
    ll n;
    ll a[110];
    ll A,B;
 
    ll ans,ans_max=0;
    ll maxmin=0,temp;
    bool flag=false;
 
    cin>>n;
    for(int i=0;i<n;++i) cin>>a[i];
    cin>>A>>B;
 
    sort(a,a+n);
 
    //如果数组a与A~B没有交集,则直接等于另一边界值
    if(a[0]>=B) 
    {
        if(A%2==1) cout<<A<<endl;
        else cout<<A+1<<endl;
        flag=true;
    }
    else if(a[n-1]<=A)
    {
        if(B%2==1) cout<<B<<endl;
        else cout<<B-1<<endl;
        flag=true;
    }
    
    else for(int i=0;i<n-1;i++)
    {
        //如果a中元素不在A B范围内,则不计算(因为计算所得值一定不是答案)
        if(a[i+1]<A) continue;
        else if(a[i]>B) break;
 
        //求相邻两数的平均数(该平均数一定是偶数,所以不用考虑整除问题)
        temp=(a[i]+a[i+1])/2;
        //如果两个元素一个在范围内,一个在范围外,且平均值在范围外
        //X与两点最近距离为A与a[i+1]的距离
        if(temp<=A)
        {
            if(A%2==1) temp=A;
            else temp=A+1;
            maxmin=abs(a[i+1]-temp);
        }
        //X与两点最近距离为B与a[i]的距离
        else if(temp>=B)
        {
            if(B%2==1) temp=B;
            else temp=B-1;
            maxmin=abs(temp-a[i]);
        }
 
        //如果平均数是奇数,那么就是他
        else if(temp%2==1) maxmin=temp-a[i];
        //如果平均数是偶数,那么是他 +或- 1
        else
        {
            temp--;
            maxmin=temp-a[i];
        }
 
        //更新最大值
        if(maxmin>ans_max)
        {
            ans=temp;
            ans_max=maxmin;
        }
    }
 
    if(flag==false) cout<<ans;
 
    return 0;
}

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-12-04 22:07
    关注
    评论

报告相同问题?

问题事件

  • 创建了问题 12月4日

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。