3 条题解

  • 4
    @ 2023-6-10 13:31:22

    OK呀,兄弟们,今天咱也是来刷题了好吧。

    这题贼简单,不解释,直接上代码。

        long long n,x=0,y=0;
        cin>>n;
        long long a[n];
        for (int i=0;i<n;i++)//先输入到数组里
        {
            cin>>a[i];
        }
        for (int j=0;j<n-1;j++)
        {
            if (a[j]<=a[j+1])//矮到高
            {
                x++;
            }
        }
        for (int k=0;k<n-1;k++)
        {
            if (a[k]>=a[k+1])//高到矮
            {
                y++;
            }
        }
        if ((x==n-1) || (y==n-1))//这里x表示矮到高的判断,而y表示高到矮的判断
        {
            cout<<"Good";
        }
        else
        {
            cout<<"No";
        }
    
    • @ 2023-6-10 13:34:31

      编码不易,点个赞再抱走吧!求求了

      (☞゚ヮ゚)☞ 点赞 ☜(゚ヮ゚☜)

  • 2
    @ 2023-1-25 12:42:11
    #include <iostream>
    using namespace std;
    int n,a[11];
    int main()
    {
        bool d=1;
        cin >> n;
        for(int i=1;i<=n;i++)
        {
            cin >> a[i];
        }
        if(a[1]>a[n])
        {
            a[0]=190;
            for(int i=1;i<=n;i++)
            {
                if(a[i]>a[i-1])
                {
                    d=0;
                }
            }
        }
        else
        {
            a[0]=0;
            for(int i=1;i<=n;i++)
            {
                if(a[i]<a[i-1])
                {
                    d=0;
                }
            }
        }
        if(d)
        {
            cout << "Good";
        }
        else
        {
            cout << "No";
        }
    }
    
    • 0
      @ 2022-12-8 20:52:39

      HHH,我又来了,今天咱们聊聊P803 【入门】排好队了吗? u1s1,这题目是真让人栓Q。 image 这题也不是什么难题,怎么这么惨呢。这题只需要来个差分即可。


      差分

      对于一个函数f(x),定义△f(x)=f(x)-f(x-1),称△f(x)是f(x)的差分。 这是差分在数学上的定义。类似的,我们可以定义数组d每项的差分为d[i]-d[i-1],这里i>1。


      唠嗑了这么多,到底差分有什么用呢? 以本题为例,对于这个问题,我们不必去判断输入的数据是否是单调递增或单调递减的情况 (即已按顺序或倒序排序)。我们可以先求出原数组每项的差分。显然(可能有些恶劣)对于输入数据来说,(设输入数组名字为d),已按顺序或倒序排序的前提是d每项的差分正负性相同或为0。如d[1]-d[0]>0,但d[2]-d[1]<0,则我们可以断定数组d没有排好序。因为由d[1]-d[0]>0得d[1]>d[0],由d[2]-d[1]<0得d[1]>d[2],显然没有排好序。 好了,上代码!

      a=int(input())
      B=input().split()
      s=[]
      for i in range(a-2,-1,-1):
          I=int(B[i])
          now=I
          next_one=int(B[i+1])
          s.append(next_one-now)#求差分
      flag = 1
      for i in range(a-2):
          if (s[i] > 0 and s[i+1] < 0) or (s[i] < 0 and s[i+1] > 0) or (s[i] == s[i+1])#特判,不然只得67分。:
              #出现特例就说明没排好了,break!
              flag=0#一定要设为0.
              break
      if flag:
          print('Good')
      else:
          print('No')
      

      Loading:23/100……^_^

      • @ 2023-1-25 12:31:36

        你不是会两种编程语言吗?你可以两种都编。

    • 1

    信息

    ID
    803
    时间
    1000ms
    内存
    64MiB
    难度
    8
    标签
    递交数
    197
    已通过
    37
    上传者