2 条题解

  • 1
    @ 2025-9-8 15:10:13
    #include<bits/stdc++.h>
          using namespace std;
          int main() {
        	int n,x,t=0;
        	cin>>n>>x;
        	int a[n];
        	for(int i=0;i<n;i++)
        		cin>>a[i];
        	sort(a,a+n);
        	for(int i=n-1;i;i--)
        		if((n-i)*a[i]>=x){
        			t++;n=i;
        		}
        	cout<<t;
            return 0;
    }
    
    • 0
      @ 2025-9-6 17:50:56
      //此题解会超时,仅供参考思路
      #pragma GCC optimize(2)
      #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
      	int n,m,t,b,x,i,f;
      	cin>>n>>x;
      	int a[n],ans[n];
      	for(i=0;i<n;i++)
      	{
      		cin>>a[i];
      		ans[i]=0;
      	}//输入与初始化
      	sort(a,a+n) ;//排序
      	for(f=0;f<n;f++)
      	{
      		b=a[f];//b是这组最低分
      		t=b;//当前总分数
      		m=1;//当前小组组成员数
      		for(i=f;i<n;i++)
      		{
      			if(t>=x)//判断已达标
      			{
      				ans[f]++;//舍弃低分员工后的ans计数增加
      				b=a[i+1];
      				t=b;
      				m=1;//重置成员组数据
      			}
      			else
      			{
      				t=b*m;
      				m++;//添加成员
      			}
      		}
      		if(ans[f]>ans[0])
            ans[0]=ans[f];//仅保留最大的ans计数
      	}
      	cout<<ans[0];//输出最大ans计数
      	return 0;
      }
      //更新:tmd我是傻逼,倒过来算就行了
      
      • 1

      [2025 新生训练赛 2] 从没有感觉打工快乐过

      信息

      ID
      189
      时间
      1000ms
      内存
      256MiB
      难度
      9
      标签
      递交数
      63
      已通过
      7
      上传者