HanHanNASa 2022-02-27 23:59 采纳率: 100%
浏览 20
已结题

贪心代码wa7ac3求指导

题目描述
奶牛在熊大妈的带领下排成了一条直队。

显然,不同的奶牛身高不一定相同……

现在,奶牛们想知道,如果找出一些连续的奶牛,要求最左边的奶牛 A 是最矮的,最右边的 B是最高的,且 B 高于 A 奶牛。中间如果存在奶牛,则身高不能和 A,B 奶牛相同。问这样的奶牛最多会有多少头?

从左到右给出奶牛的身高,请告诉它们符合条件的最多的奶牛数(答案可能是 0,2 但不会是1)。

输入格式
第一行一个正整数 N,表示奶牛的头数。
接下来 N 行,每行一个正整数,从上到下表示从左到右奶牛的身高 h[i] 。

输出格式
一行一个整数,表示最多奶牛数。

输入输出样例
输入 #1
5
1
2
3
4
1
输出 #1
4
说明/提示
样例解释
取第 1头到第 4头奶牛,满足条件且为最多。

c++
#include<bits/stdc++.h>
using namespace std;
int n;
const int maxn=1e5+5;
int a[maxn];
int l=1;
int cnt=0,cnted=0,ans=0;
int main()
{    
cin>>n;    
int ned=n;    int r=ned;  
  for(int i=1;i<=n;i++)  
  {        cin>>a[i];    } 
   for(int i=1;i<n;i++)   
 {              
  if(a[r]==a[r-1])        
{        
    //cout<<a[r]<<' '<<a[r-1]<<endl;    
        r=ned;        
    ans=0;             
//cout<<"p1-2"<<endl;        
}        else if(a[l]==a[l+1])     
   {            l=i+1;        
    ans=0;         
    //cout<<"p1-1"<<endl;    
    }        
else if(a[i+1]>=a[i]&&a[l]!=a[l+1]&&a[r]!=a[r-1])        {       
     ans++;         
                r=i+1;      
       //cout<<"p2"<<endl;      
  }        else{    
        l=i+1;        
    r=ned;        
    //cout<<"p3"<<endl;   
         cnt=max(ans,cnted);      
      cnted=cnt;        
    ans=0;   
     }     
   if(i==n-1)     
    {   
         //cout<<"结算:"<<ans<<' '<<cnt<<endl;            cnt=max(ans,cnt); 
           break;            
        }  
  }   
 cout<<(cnt==0?0:cnt+1);  
  return 0;     
       }

注释为我调试时使用
这段代码只能a三个点,其他全部wa
而且我自己输入的序列返回答案全部没问题
看不出来有啥问题,挺简单一贪心算法

求指导!

  • 写回答

1条回答 默认 最新

  • HanHanNASa 2022-02-28 00:03
    关注

    l是奶牛左边界,r是奶牛右边界,均为下标
    ned记录上一个n
    cnted记录上一个cnt
    ans记录当前cnt
    从左到右遍历取区间长最大值
    然而

    img

    评论

报告相同问题?

问题事件

  • 系统已结题 3月7日
  • 创建了问题 2月27日

悬赏问题

  • ¥20 ARM64架构下SSCMS部署问题
  • ¥20 请教如何让移动端的热区自适应
  • ¥30 为什么深度学习网络训练会出现训练集和测试集准确率和损失都不变的情况
  • ¥15 (标签-3D|关键词-色模型)
  • ¥15 发现在MSVS2022中”#pragma once“不起作用
  • ¥15 实时声纹降噪算法进行无关说话人语音抑制
  • ¥100 adb针对解决手机锁屏问题(相关搜索:手机锁屏)
  • ¥15 发现哔哩哔哩的粉丝只能显示前5页能不能爬出来
  • ¥15 oracle数据库求解
  • ¥15 c++ websocketpp连接币安 有报错,有偿求解