zoukankan      html  css  js  c++  java
  • BestCoder20 1002.lines (hdu 5124) 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5124

    题目意思:给出 n 条线段,每条线段用两个整数描述,对于第 i 条线段:xi,yi 表示该条线段的左端点和右端点。设 A 表示最多线段覆盖的点(当然这个 A 可以有多个啦,但这个无关紧要)。现在需要求的是 A 被多少条线段覆盖。

          我是不会做啦.......一开始还看不懂题目= =

          以下是按照题解做的,

         

      题解中的最大区间和,实际上就是求最大连续子序列的和。

          (1)版本1   906 MS

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstdlib>
     4 #include <cstring>
     5 #include <algorithm>
     6 using namespace std;
     7 
     8 #define x first
     9 #define y second
    10 
    11 const int N = 2e5 + 5;
    12 pair<int, int> p[N];
    13 
    14 int main()
    15 {
    16     #ifndef ONLINE_JUDGE
    17         freopen("in.txt", "r", stdin);
    18     #endif // ONLINE_JUDGE
    19     int t, n;
    20     while (scanf("%d", &t) != EOF)
    21     {
    22         while (t--)
    23         {
    24             scanf("%d", &n);
    25             int a, b, cnt = 0;
    26             for (int i = 0; i < n; i++)
    27             {
    28                 scanf("%d%d", &a, &b);
    29                 p[cnt++] = make_pair(a, 1);
    30                 p[cnt++] = make_pair(b+1, -1);
    31             }
    32             sort(p, p+cnt);
    33             int ans = 0, sum = 0;
    34             for (int i = 0; i < cnt; i++)
    35             {
    36                 sum += p[i].y;
    37                 if (sum > ans)
    38                     ans = sum;
    39                 if (sum < 0)
    40                     sum = 0;
    41             }
    42             printf("%d
    ", ans);
    43         }
    44     }
    45     return 0;
    46 }

       (2) 版本2  921 MS 

        将   

    for (int i = 0; i < cnt; i++)
    {
          sum += p[i].y;
          if (sum > ans)
              ans = sum;
          if (sum < 0)
              sum = 0;
    }

    改成这样:

      for (int i = 0; i < cnt; i++)
      {
        sum += p[i].y;
        ans = max(ans, sum);
      }

  • 相关阅读:
    PPT中的图像失真
    Delphi GDI对象之绘制文本
    iOS App的加固保护原理
    PHP网站渗透中的奇技淫巧:检查相等时的漏洞
    企业安全建设之浅谈数据防泄露
    常见分布式全局唯一ID生成策略及算法的对比
    写时模式”与“读时模式”之间的对比
    工业互联网环境下IT/OT融合的安全防御技术研究
    一文梳理工业控制系统信息安全软件与监控
    威努特iSoc培训
  • 原文地址:https://www.cnblogs.com/windysai/p/4136034.html
Copyright © 2011-2022 走看看