40分dalao求助

P2676 [USACO07DEC] Bookshelf B

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


| 下一页