2 solutions

  • 1
    @ 2024-6-11 10:45:54

    模拟(O(nm)O(nm))

    • 算法分析,每次来一个接水的同学,我们找到最小的水龙头编号,然后让当前人去接,所有人都接水以后,我们去寻找最后一个流完水的水龙头。
    #include<bits/stdc++.h>
    using namespace std;
    const int M=110;
    int s[M];
    int main()
    {
        int n,m;
        cin>>n>>m;
        for(int i=1;i<=n;i++)
        {
            int x;
            cin>>x;//第i个同学来接水
            int minid;
            for(int j=1;j<=m;j++) //找到最小的水龙头所在的位置
            {
                if(j==1||s[j]<s[minid])
                {
                    minid=j;
                }
            }
          
            s[minid]+=x; //第i个同学到最小的水龙头的位置
        }
        int maxv=0;
        for(int i=1;i<=m;i++) //所有同学都接水以后,找到最大的水龙头的流水时间
        {
            if(i==1||s[i]>maxv)
            {
                maxv=s[i];
            }
        }
        cout<<maxv;
        return 0;
    }
    

    优化(nlogmnlogm)

    由于涉及到找最小值,我们可以使用堆将每次查找的时间从O(m)O(m) 优化到OlogmOlogm

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        int n,m;
        cin>>n>>m;
        priority_queue<int,vector<int>,greater<int> > q; //小根堆
        for(int i=1;i<=n;i++)
        {
            int x;
            cin>>x;
            if(q.size()<m) //前m个人,直接接水
            {
                q.push(x);
            }
            else
            {
                q.push(q.top()+x); //到前这个人到最快接完水的水龙头
                q.pop(); //删除最小的
            }
        }
        while(q.size()>1) q.pop(); //只保留最大的
        cout<<q.top();
        return 0;
    }
    
    • 0
      @ 2024-9-21 11:07:04
      
      #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
          int m,k;
          cin>>m>>k;
          while(m%19!=0 && m/3!=k)
          {
              if(m%19==0 && m/3==k) cout<<"YES";
              else cout<<"NO";
              m++;
          }    
          return 0;
      }
      
      • 1

      Information

      ID
      430
      Time
      1000ms
      Memory
      128MiB
      Difficulty
      10
      Tags
      # Submissions
      4
      Accepted
      3
      Uploaded By