蒟蒻在线求解
  • 板块学术版
  • 楼主lamp_forever
  • 当前回复5
  • 已保存回复5
  • 发布时间2021/8/13 20:06
  • 上次更新2023/11/4 10:46:24
查看原帖
蒟蒻在线求解
464570
lamp_forever楼主2021/8/13 20:06

刚刚学完排序接触贪心 发现了此题需要先排序后贪心 于是自己决定用归并排序(因为试了试其他的都TLE了)后贪心 样例过了就是评测了0分 还望大佬们教一教思路和代码``` #include<bits/stdc++.h> using namespace std; long long a[1000001],n,m,t,t1; void qsort(long long a[],long long l,long long r) { int i,j,mid; i=l; j=r; mid=a[(l+r)/2]; do { while(a[i]<mid) i++; while(a[j]>mid) j--; if(i<=j) { swap(a[i],a[j]); i++; j--; } }while(i<=j); if(l<j) qsort(a,l,j); if(i<r) qsort(a,i,r); }

int main() { cin>>n>>m; for(int i=0;i<n;i++) cin>>a[i]; qsort(a,0,n-1);

for(int i=0;i<n;i++)
	if(a[i]<1)
	{
	cout<<"No answer!!!"<<endl;
	
	}
while(m>0)
{	
	for(int i=n-1;i>=0;i--)
	{
		if(m>=a[i])
		{
			t1++;
			m=m-a[i];
			continue;
		}
	}
}
	cout<<t1<<endl;

}

2021/8/13 20:06
加载中...