zoukankan      html  css  js  c++  java
  • LA 7158. ACM-ICPC World Finals 2015 I. Ship Traffic

    在区间首尾分别+1 -1的方法叫扫描线??

    #include <iostream>
    #include <algorithm>
    using std::cin;
    struct Moment {
      double value; short weight;
      bool operator < (const Moment &mo2) {
        return value == mo2.value ? weight < mo2.weight : value < mo2.value;
      }
    };
    
    Moment mo[200002];
    int cnt;
    void add_time(double v, int w) {
      mo[cnt].value = v;
      mo[cnt].weight = w;
      cnt++;
    }
    
    int main() {
      std::ios::sync_with_stdio(false);
    
      int n; double w, u, v, t1, t2;
      cin >> n >> w >> u >> v >> t1 >> t2;
      cnt = 0;
      add_time(t1, 0);
      add_time(t2, 0);
    
      for (int i = 0; i < n; ++i) {
        char ch_dir; int m;
        cin >> ch_dir >> m;
        int dir = (ch_dir == 'W') ? 1 : -1;
        while (m--) {
          double len, pos;
          cin >> len >> pos;
          double start_time = std::max(dir * pos / u - w * (i + 1) / v, t1),
                 end_time = std::min((dir * pos + len) / u - w * i / v, t2);
          if (start_time >= t2 || end_time <= t1)
            continue;
          add_time(start_time, 1);
          add_time(end_time, -1);
        }
      }
    
      std::sort(mo, mo + cnt);
    
      double ans = 0;
      for (int i = 0, cur = 0; i + 1 < cnt; ++i) {
        cur += mo[i].weight;
        if (cur == 0) {
          ans = std::max(ans, mo[i + 1].value - mo[i].value);
        }
      }
    
      std::cout << ans << std::endl;
      return 0;
    }
    
  • 相关阅读:
    while($info = mysql_fetch_assoc($result))
    网站问题搜索
    call apply js
    函数和变量名为啥不能包含
    js 函数 理解
    smtp 4个点
    使用视频作为网页背景的技术探讨
    php表达式内含表达式
    hook_theme作用小思考
    php中引用&的真正理解-变量引用、函数引用、对象引用
  • 原文地址:https://www.cnblogs.com/P6174/p/8268061.html
Copyright © 2011-2022 走看看