5 solutions

  • 3
    @ 2025-8-4 16:21:43
    #include<bits/stdc++.h>
    using namespace std;
    const int N=10010;
    int a[N],b[N];
    int main()
    {
    	int n,m;
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    	}
    	int res=0;
    	for(int i=1;i<=n;i++)
    	{	
    		sort(b+1,b+m+1);
    		b[1]+=a[i];
    	}	sort(b+1,b+m+1);
    	cout<<b[m];
    	return 0;
    }
    
    
    • 1
      @ 2026-8-20 15:36:32
      #include<bits/stdc++.h>
      using namespace std;
      
      int main(){
      	priority_queue<int,vector<int>,greater<int>> q;
      	int n,m;
      	cin>>n>>m;
      	for(int i=1;i<=n;i++){
      		int x;
      		cin>>x;
      		if(q.size()==m){
      			int y=q.top()+x;
      			q.pop();
      			q.push(y);
      		}else q.push(x);
      	}
      		while(q.size()>1){
      			q.pop();
      		}
      	
      	cout<<q.top();
      	return 0;
      }
      
      
      • 0
        @ 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;
        }
        
        • -1
          @ 2025-7-24 14:20:56
          #include<bits/stdc++.h>
          using namespace std;
          const int N=10010;
          int a[N],b[N];
          int main()
          {
              int n,m;
              cin>>n>>m;
              for(int i=1;i<=n;i++)
              {
                  cin>>a[i];
              }
              for(int i=1;i<=n;i++)
              {
                  int minv=1e8;
                  int minw=0;
                  for(int j=1;j<=m;j++)
                  {
                      if(b[j]<minv)
                      {
                          minv=b[j];
                          minw=j;
                      }
                  }
                  b[minw]+=a[i];
              }
              int maxu=0;
              for(int i=1;i<=m;i++)
              {
                  if(b[i]>maxu)
                  {
                      maxu=b[i];
                  }
              }
              cout<<maxu;
              return 0;
          }
          
          • -2
            @ 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
            5
            Tags
            # Submissions
            30
            Accepted
            14
            Uploaded By