Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:各位大神,求助。。。(附本人代码,求指点)

Posted by lpls1 at 2019-02-27 13:07:16 on Problem 2431
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:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator