for(i=1;i<=n-1;i++)
{
for(j=1;j<=n-1;j++)
{
if(h[j]<h[j+1])
{
k=h[j];
h[j]=h[j+1];
h[j+1]=k;
}
}
}//那i有什么用...
by Fatalis_Lights @ 2019-02-24 17:22:06
用sort快排
by Fatalis_Lights @ 2019-02-24 17:23:02
sort(h,h+n);
by Fatalis_Lights @ 2019-02-24 17:24:37
#include<bits/stdc++.h>
using namespace std;
int h[20000];
int n,height,i;
int main(){
cin>>n>>h;
for (i=0;i<n;i++) cin>>h[i];
sort(w,w+n);
for (;height;i--) ans-=h[i];
cout<<n-i-1<<endl;
return 0;
}
by Fatalis_Lights @ 2019-02-24 17:30:11
希望更丰富的展现?使用Markdown
by aminoas @ 2019-02-24 17:39:07
@[本条二亚](/space/show?uid=91204)
那这个程序哪错了,麻烦看一看:
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int n,b,i,s=0,hn=0;
cin>>n>>b;
long long int h[n+1];
for(i=1;i<=n;i++)
{
cin>>h[i];
}
sort(h,h+n+1);
for(i=n;i>=1;i--)
{
hn+=h[i];
s++;
if(hn>=b)
{
cout<<s<<endl;
break;
}
}
return 0;
}
by 赤霞QvQ @ 2019-02-24 21:34:54
@[本条二亚](/space/show?uid=91204) 前三个测试点没过
by 赤霞QvQ @ 2019-02-24 21:35:15
@[本条二亚](/space/show?uid=91204) 还有,这个程序就过了,唯一的差别就在于h从输入n后的h[n+1]到放在最前面的h[20001],有什么区别吗?怎么就过了呢?
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long int n,b,i,s=0,hn=0,h[20001];
cin>>n>>b;
for(i=1;i<=n;i++)
{
cin>>h[i];
}
sort(h,h+n+1);
for(i=n;i>=1;i--)
{
hn+=h[i];
s++;
if(hn>=b)
{
cout<<s<<endl;
break;
}
}
return 0;
}
by 赤霞QvQ @ 2019-02-24 21:47:07
sort(h,h+n+1); =>"h+n+1"溢出。
by Fatalis_Lights @ 2019-02-25 19:53:58
@[无赖学哥](/space/show?uid=174867)
by Fatalis_Lights @ 2019-02-25 19:54:03