• Codeforces Round #541 (Div. 2) B.Draw!


    链接:https://codeforces.com/contest/1131/problem/B

    题意:

    给n次足球比分,求存在平局的机会。

    思路:

    结构体存储,unique后,判断是否有分数交叉。

    一方当前分数小的时候,下一次分数小于当前对方时不存在平局,

    下一次分数介于对方当前分数和下次分数之间时根据下次分数和当前对方分数。

    否则表示对方分数被完全包含,反之同理。

    代码:

    #include <bits/stdc++.h>
    
    using namespace std;
    
    typedef long long LL;
    
    const int MAXN = 1e4 + 10;
    struct Node
    {
        int _l, _r;
        bool operator == (const Node & that){
            return this->_l == that._l && this->_r == that._r;
        }
    }node[MAXN];
    
    int main()
    {
        int n;
        cin >> n;
        node[1]._l = 0;
        node[1]._r = 0;
        for (int i = 2;i <= n + 1;i++)
            cin >> node[i]._l >> node[i]._r;
        int res = 1;
        int x = unique(node + 1,node + n + 2) - (node + 1);
        for (int i = 1;i < x;i++)
        {
            if (node[i]._l == node[i]._r)
                res += min(node[i + 1]._l, node[i + 1]._r) - node[i]._l;
            else if (node[i]._l < node[i]._r)
            {
                if (node[i + 1]._l < node[i]._r)
                    continue;
                if (node[i + 1]._l <= node[i + 1]._r)
                    res += node[i + 1]._l - node[i]._r + 1;
                else
                    res += node[i + 1]._r - node[i]._r + 1;
            }
            else if (node[i]._l > node[i]._r)
            {
                if (node[i + 1]._r < node[i]._l)
                    continue;
                if (node[i + 1]._r <= node[i + 1]._l)
                    res += node[i + 1]._r - node[i]._l + 1;
                else
                    res += node[i + 1]._l - node[i]._l + 1;
            }
        }
        cout << res << endl;
    
        return 0;
    }
    /*
    3
    1 1
    2 2
    3 3
     */
    

      

  • 相关阅读:
    Navicat远程连接服务器Mysql
    JSP与Servlet之间传值
    JSP获取绝对路径
    PIL的库学习
    科学计算与可视化
    预测球类比赛结果
    预测球类比赛结果
    汉诺塔问题
    有进度条圆周率计算
    turtle学习心得
  • 原文地址:https://www.cnblogs.com/YDDDD/p/10425068.html
Copyright © 2020-2023  润新知