码迷,mamicode.com
首页 > 其他好文 > 详细

The Preliminary Contest for ICPC Asia Shanghai 2019 B. Light bulbs

时间:2020-03-03 17:43:14      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:second   its   str   https   ++   cas   ret   return   fir   

Link
题意:
\(n\) 盏灯,一开始都是关着的,输入区间 \([l,r]\) 代表翻转此区间内灯泡开闭状态,问经过 \(m\) 次操作之后有多少个灯泡是开着的
思路:
差分数组
记录操作端点,若某点 \(node[x]\) 前缀和为奇数,说明从 \([node[x],node[x+1])\) 灯泡都是开着的
代码:

#include<bits/stdc++.h>

using namespace std;

int n,m;
map<int,int>mp;

int main()
{
    int T;
    scanf("%d",&T);
    for(int i=1;i<=T;i++)
    {
        scanf("%d%d",&n,&m);
        mp.clear();
        for(int i=0;i<m;i++)
        {
            int l,r;
            scanf("%d%d",&l,&r);
            mp[l]++,mp[r+1]--;
        }
        int sum=0,res=0,pre;
        for(auto x:mp)
        {
            if(sum&1) res+=x.first-pre;
            sum+=x.second;
            pre=x.first;
        }
        printf("Case #%d: %d\n",i,res);
    }
    return 0;
}

The Preliminary Contest for ICPC Asia Shanghai 2019 B. Light bulbs

标签:second   its   str   https   ++   cas   ret   return   fir   

原文地址:https://www.cnblogs.com/c4Lnn/p/12403417.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!