为什么 P2085 过了这里只有20分?

P1935 [国家集训队] 圈地计划

```cpp #include<iostream> #include<cstdio> using namespace std; int n,m,xa; int ai[10001],bi[10001],ci[10001]; int siftdown(int); int zong=0; int pai(); int siup(int); long dui[10001],dui2[10001]; int swe(int,int); int main() { cin>>n>>m; for(int j=1;j<=n;j++) { cin>>ai[j]>>bi[j]>>ci[j]; } for(int k=1;k<=m/2+5;k++) { for(int a=1;a<=n;a++) { xa=ai[a]*k*k+bi[a]*k+ci[a]; zong++; if(zong<=m) { dui[zong]=xa; siup(zong); } else { if(dui[1]>xa) { dui[1]=xa; siftdown(1); } } } } xa=m; while(m!=0) { dui2[m]=dui[1]; dui[1]=dui[m]; m--; siftdown(1); } for(int kk=1;kk<=xa;kk++) { cout<<dui2[kk]<<" "; } return 0; } int siup(int ks) { int jd=ks,fll=0; while(fll==0&&jd/2>=1) { if(dui[jd]>dui[jd/2]) { swe(jd,jd/2); jd=jd/2; } else fll=1; } } int siftdown(int xx) { int flag=0,jk=xx,l; while(flag==0&&jk*2<=m) { if(dui[jk]<dui[jk*2]) l=jk*2; else l=jk; if(jk*2+1<=m) if(dui[jk*2+1]>dui[l]) l=jk*2+1; if(l!=jk) { swe(l,jk); jk=l; } else flag=1; } } int swe(int xas,int uo) { int jse=dui[xas]; dui[xas]=dui[uo]; dui[uo]=jse; } 其实没多强,这样都过了 ```
by 许豪 @ 2017-05-04 21:25:21


```cpp #include<iostream> #include<stdio.h> using namespace std; int n=0,m=0; struct fun{ int a;int b;int c; int va; }fx[10001]; int calc(int p) { int x=fx[p].va; return fx[p].a*x*x+fx[p].b*x+fx[p].c; } int main() { cin>>n>>m; for(int i=1;i<=n;i++) { cin>>fx[i].a>>fx[i].b>>fx[i].c; fx[i].va=1; } for(int i=1;i<=m;i++) !!!_!!!!!!!!**!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!这里的m改成m除以2加3_******### { int flag=1,min=0x7ffffff; for(int j=1;j<=n;j++) { int cnt=calc(j); if(cnt<min) { min=cnt; flag=j; } } cout<<min<<' '; fx[flag].va+=1; } } ```
by 许豪 @ 2017-05-05 12:13:50


@[xu\_hao](/space/show?uid=36506) 输出M个数啊,改了就全错了
by zhegexiankabutaileng @ 2017-05-05 21:44:25


@ zhegexiankabutaileng 可能是你rp不好
by 夏色祭 @ 2017-08-19 16:00:40


@zhegexiankabutaileng
by 夏色祭 @ 2017-08-19 16:01:02


|