Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:各位大神,求助。。。(附本人代码,求指点)In Reply To:各位大神,求助。。。(附本人代码,求指点) Posted by:CXDZB at 2017-12-04 23:12:00 > 一直过不了,又找不出哪有问题,绝望。 > #include<cstdio> > #include<cstdlib> > #include<algorithm> > #include<cmath> > #include<iostream> > #include<fstream> > #include<iomanip> > #include<ctime> > #include<stack> > #include<queue> > #include<utility> > #include<string> > #include<cstring> > using namespace std; > > struct station > { > int N1,N2; > }NN[10001];//定义加油站。 > > bool cmp(const station &NN1,const station &NN2) > { > return NN1.N1<NN2.N1; > } > > int main() > { > int N,L,P;//定义加油站个数,全程,起始油量。 > scanf("%d",&N); > int sum=0;//定义加油的次数且初始化。 > for(int i=0;i<N;i++) > scanf("%d%d",&NN[i].N1,&NN[i].N2); > scanf("%d%d",&L,&P);//输入。 > for(int n=0;n<N;n++) > NN[n].N1=L-NN[n].N1; > sort(NN,NN+N,cmp);//排序。 > priority_queue<int>que;//经过且没加过的加油站。 > int loc=0;//定义当前的位置且初始化。 > int oil=P;//定义当前的汽油量且初始化。 > for(int j=0;j<N;j++) > { > int spa=NN[j].N1-loc;//定义间隔距离。 > while(oil<spa) > { > if(que.empty())//还没走到加油站,油就没了。 > { > puts("-1"); > return 0;//结束。 > } > oil+=que.top();//补充汽油(最大)。 > que.pop();//加过油的站作废。 > sum++;//计数加一。 > } > oil-=spa;//减去消耗的汽油。 > loc=NN[j].N1;//位置变化。 > que.push(NN[j].N2);//经过的加油站加一。 > } > printf("%d\n",sum);//输出。 > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator