10 条题解

  • 9
    @ 2023-7-17 14:05:57
    #include <iostream>
    #include <algorithm>
    using namespace std;
    int a[105];
    int main()
    {
        int b;
        int sum = 0;
        cin >> b;
        for (int i = 1; i <= b; i++)
        {
            cin >> a[i];
        }
        for (int i = 2; i <= b; i++)
        {
            if (a[i] >= a[i - 1])
            {
                sum += a[i];
            }
            if (a[i] < a[i - 1])
            sum += a[i - 1];
        }  
        cout << sum;
        return 0;
    }
    

    解析:

    1.用 for 语句获取数组元素。

    2.从第二个人遍历到最后一个。

    3.因为我们要优先满足更作→(音调)的(事更多的),所以我们给sum加上第i个人和前一个人更大的那个。

    4.在小小的oj里挖呀挖呀挖,得小小的点赞,根本不够康~👍 (你懂的)

    • 3
      @ 2023-7-14 12:29:38

      解析

      对于第2个人到第n个人,累加每个人向左的最合适距离max(1[i], a[i-1])

      题解

      #include <iostream>
      #include <algorithm>
      using namespace std;
      int main()
      {
          int a[105];
          int n, sum = 0;
          cin >> n;
          for (int i = 1; i <= n; i++)
              cin >> a[i];
          for (int i = 2; i <= n; i++)
              sum += max(a[i], a[i - 1]);
          cout << sum;
          return 0;
      }
      
      • 2
        @ 2023-7-14 19:26:16

        题解来力

        思路:

        做题之前,先搞清楚两件事:

        1:同学A和同学B之间的最小距离 = 同学A必须保持的最小距离 与 同学B必须保持的最小距离之间的最大值

        2:计算时只需要算第i个同学和第i-1个同学之间的最小距离就好了

        在这之后,可以用一个一维数组(stu)来保存同学们必须保持的最小距离

        然后写一个for循环遍历stu(如果循环从1开始,则需要判断一下i是否==1,以避免程序把第1个同学与第0个同学(没有同学)的最小距离算进去了),求和变量(sum)在每次循环都要增加stu[i]和stu[i-1]之间的最小值

        最后输出就行

        PS:我做题的时候发现没有写include cmath,以为会CE,结果AC了,这说明iostream里也是有max的

        #include <iostream>
        using namespace std;
        
        int stu[105];
        
        int main()
        {
            int n,sum = 0;
            cin >> n;
            for(int i = 1;i <= n;i++)
            {
                cin >> stu[i];
                if(i != 1)
                    sum += max(stu[i],stu[i - 1]);
            }
            cout << sum;
            return 0;
        }
        
        • 1
          @ 2024-4-16 20:28:44
          #include<iostream>
          using namespace std;
          int main()
          {
              int n,sum=0;
              cin >> n;
              int a[n];
              for(int i=0;i<n;i++)//循环输入距离
              {
                  cin >> a[i]; 
              }
              for(int i=1;i<n;i++)//判断最短距离
              {
                  sum+=max(a[i],a[i-1]);
              }
              cout << sum;
              return 0;
          }
          
          • 0
            @ 2023-8-9 19:28:21
            for(int i=2;i<=n;i++)
                {
                    sum+=max(a[i],a[i-1]);
                }
            

            取最大值用函数精简一下更好(对于比较懒的同学,比如我) 注意:对比时i取2,如果取1的话会使部分情况造成重复累加。

            • 0
              @ 2023-7-19 22:30:57

              yasuo从来不写using namespace std; wc,我刚刚竟然写了一个,f**k👀️

              #include <iostream>
              int main(){
                  int a[105],q,sum=0;std::cin >> q;
                  for (int i=1;i<=q;i++){
                      std::cin>>a[i];
                      if(i!=1) sum+=std::max(a[i],a[i-1]);} 
                  std::cout<<sum;return 0;}
              
              • @ 2023-7-20 10:41:02

                emmm不好意思,我不小心点了个差评,抱歉抱歉

            • 0
              @ 2023-7-14 22:36:10
              #include <algorithm>
              #include <iostream>
              using namespace std;
              int main()
              {
                  int a;
                  int s=0;
                  cin>>a;
                  int b[105];
                  for (int i=1;i<=a;i++)
                      cin>>b[i];
                  for (int i=1;i<=a-1;i++)
                  {
                      s+=max(b[i],b[i+1]);
                  }
                  cout<<s;
                  return 0;
              }
              
              • 0
                @ 2023-7-14 16:29:47
                #include<iostream>
                using namespace std;
                int a[105];
                int main()
                {
                    int n,maxn,ans=0;
                    cin>>n;
                    for(int i=1;i<=n;i++)
                    {
                        cin>>a[i];
                    }
                    for(int i=1;i<n;i++)
                    {
                        int j=i+1;
                        if(a[i]>a[j])
                        {
                            maxn=a[i];
                        }
                        else
                        {
                            maxn=a[j];
                        }
                        ans+=maxn;
                    }
                    cout<<ans;
                }//把上课写了一遍客户端又写一遍了的题在这又写一遍有什么用吗(bushi
                
                • 0
                  @ 2023-7-14 16:01:25

                  第一个题解~

                  #include<iostream>
                  using namespace std;
                  int a[105];
                  int main()
                  {
                      int n,maxa,sum=0;
                      cin>>n;
                      for(int i=1;i<=n;i++)
                      {
                          cin>>a[i];
                      }
                      for(int i=1;i<n;i++)
                      {
                          int j=i+1;
                          if(a[i]>a[j])
                          {
                              maxa=a[i];
                          }
                          else
                          {
                              maxa=a[j];
                          }
                          sum+=maxa;
                      }
                      cout<<sum;
                  }//都是上课讲的
                  
                  • -4
                    @ 2023-7-15 11:00:58

                    1、定义数组a 2、定义n和sum并输入n。 3、for循环输入a[i]。 4、for循环将sum累加a[i]和a[1 - 1]的最大值。 5、最后输出sum。 看到这里就点(暗示>v<”亿“赞👍!!!) 🎉️ 🎉️ 😄 😄 ❤️ 😄 😄 🎉️ 🎉️

                    #include <iostream>
                    using namespace std;
                    
                    int main()
                    {
                       int a[105];
                       int n, sum = 0;
                          cin >> n;
                       for (int i = 1; i <= n; i++)
                          cin >> a[i];
                       for (int i = 2; i <= n; i++)
                          sum += max(a[i], a[i - 1]);
                       cout << sum;
                       return 0; 
                    }
                    
                    • 1

                    信息

                    ID
                    291
                    时间
                    1000ms
                    内存
                    256MiB
                    难度
                    4
                    标签
                    递交数
                    1460
                    已通过
                    634
                    上传者