zoukankan      html  css  js  c++  java
  • Codeforces Round #380 (Div. 2,) C C. Road to Cinema

    题意:n,k,s,t,n种车,k个加油站,s距离,t时间,问你是否能选一个最便宜的车,从0到s在t时间内,2种速度,1km/1L油/2分钟和1km/2L油/1分钟,路过加油站可加满油并且不耗时间,给出每辆车的c,v,代表租金和油箱容量

    思路:2分油的容量。即该容量能否在t时间到达,最后再>=该容量的挑个租金最少的

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const int N=200005;
     5 
     6 int n,k,s,t;
     7 struct node{
     8     int c,v;
     9 }a[N];
    10 int b[N];
    11 
    12 int check(int x){
    13     int len=b[1];
    14     int tt=0;
    15     int t2=min(len,x-len),t1=len-t2;
    16     //t2代表用快速开车的距离,t2即用慢速开车距离
    17     if(t2<0) return 0;
    18     tt+=t1*2+t2;
    19     for(int i=2;i<=k;i++){
    20         len=b[i]-b[i-1];
    21         t2=min(len,x-len),t1=len-t2;
    22         if(t2<0) return 0;
    23         tt+=t1*2+t2;
    24     }
    25     len=s-b[k];
    26     t2=min(len,x-len),t1=len-t2;
    27     if(t2<0) return 0;
    28     tt+=t1*2+t2;
    29     if(tt<=t) return 1;
    30     return 0;
    31 }
    32 
    33 bool cmp(node p,node q){
    34     return p.v<q.v;
    35 }
    36 
    37 int main(){
    38     scanf("%d%d%d%d",&n,&k,&s,&t);
    39     int l=0,r=-1,mid,ans=-1;
    40     for(int i=1;i<=n;i++){
    41         scanf("%d%d",&a[i].c,&a[i].v);
    42         r=max(r,a[i].v);
    43     }
    44     for(int i=1;i<=k;i++) scanf("%d",&b[i]);
    45     sort(b+1,b+1+k);
    46     //mid代表该容量的油箱能不能t时间到达//
    47     while(l<=r){
    48         mid=(l+r)>>1;
    49         if(check(mid)){
    50             ans=mid;
    51             r=mid-1;
    52         }
    53         else l=mid+1;
    54     }
    55     //cout<<ans<<endl;
    56     if(ans==-1) {
    57         printf("-1
    ");return 0;
    58     }
    59     sort(a+1,a+1+n,cmp);
    60     int Min=1e9+1000;
    61     for(int i=1;i<=n;i++){
    62         if(a[i].v>=ans){
    63             Min=min(Min,a[i].c);
    64         }
    65     }
    66    printf("%d
    ",Min);
    67 }
  • 相关阅读:
    PAT 1063 计算谱半径(20)(代码)
    PAT 1071 小赌怡情(15)(代码)
    PAT 1068 万绿丛中一点红(20)(测试点分析+思路分析)
    PAT 甲级 1011 World Cup Betting (20)(代码+思路)
    PAT 1041 考试座位号(15)(代码)
    PAT 1076 Wifi密码(15)(代码)
    Mvc全局过滤器与Action排除
    .NET Core WebApi使用Swagger
    .NET WebApi使用Swagger
    JQuery常见方法
  • 原文地址:https://www.cnblogs.com/hhxj/p/7357365.html
Copyright © 2011-2022 走看看