zoukankan      html  css  js  c++  java
  • P2087 GTY的人类基因组计划2 set map

      

    题目描述

    GTY召唤了n个人来做实验,GTY家的房子很大,有m个房间一开始所有人都在1号房间里,GTY会命令某人去某个房间等待做实验,或者命令一段区间的房间开始实验,实验会获得一些实验信息点数,点数为房间里的人数,如果一个房间里的一群人已经做过实验了那么这些人将不会增加实验信息点数(不会增加是针对这一群人的,不是对这群人中的每个人,即1,2,3做了实验,1,2再做实验还会增加2点实验点数)

    输入输出格式

    输入格式:

    第一行两个整数n,m,q(n,m,q<=10^5)表示人数,房间数和操作数

    接下来q行每行一个操作 "C i j"表示让第i个人去房间j "W l r" 表示让区间[l,r]的房间做实验

    输出格式:

    对于每一个W操作,输出一个数,表示此次操作所获得的实验点数

    输入输出样例

    输入样例#1: 复制
    3 5 7
    C 1 2
    C 2 2
    W 1 2
    C 3 2
    W 1 2
    C 3 3
    W 1 3
    输出样例#1: 复制
    3
    3
    0

    map和set强行怼
    set可以直接删除内容!! 也可以用下标删除

    #include<bits/stdc++.h>
    using namespace std;
    //input by bxd
    #define rep(i,a,b) for(int i=(a);i<=(b);i++)
    #define repp(i,a,b) for(int i=(a);i>=(b);--i)
    #define RI(n) scanf("%d",&(n))
    #define RII(n,m) scanf("%d%d",&n,&m)
    #define RIII(n,m,k) scanf("%d%d%d",&n,&m,&k)
    #define RS(s) scanf("%s",s);
    #define ll long long
    #define pb push_back
    #define CLR(A,v)  memset(A,v,sizeof A)
    //////////////////////////////////
    #define inf 0x3f3f3f3f
    const int N=1e5+5;
    set<int>room[N];
    map<set<int>,int>mp;
    int pos[N],m,n,q,a,b;
    char s[2];
    set<int>::iterator it;
    int main()
    {
        RIII(n,m,q);
        rep(i,1,n)
        room[1].insert(i),pos[i]=1;
    
        while(q--)
        {
            RS(s);RII(a,b);
            if(s[0]=='C')
            {
                room[pos[a]].erase(a);
                pos[a]=b;
                room[b].insert(a);
            }
            else
            {
                int ans=0;
                rep(i,a,b)
                {
                    if(mp[room[i]])continue;
                    ans+=room[i].size();
                    mp[room[i]]=1;
                }
                cout<<ans<<endl;
            }
        }
        return 0;
    }
    View Code










  • 相关阅读:
    HDU 2888 Check Corners (模板题)【二维RMQ】
    POJ 3264 Balanced Lineup(模板题)【RMQ】
    poj 3368 Frequent values(经典)【RMQ】
    SPOJ RPLN (模板题)(ST算法)【RMQ】
    UVA 796 Critical Links(模板题)(无向图求桥)
    UVA 315 Network (模板题)(无向图求割点)
    POJ 2029 Get Many Persimmon Trees (模板题)【二维树状数组】
    poj 3067 Japan 【树状数组】
    POJ 2481 Cows 【树状数组】
    POJ 1195 Mobile phones【二维树状数组】
  • 原文地址:https://www.cnblogs.com/bxd123/p/10914614.html
Copyright © 2011-2022 走看看