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

BZOJ 4419 发微博

时间:2016-05-08 13:34:13      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:

set暴力。记录一个rec数组表示每一个人发了多少次微博,当+时减去rec,-时加上rec即可表示看到了这个人的微博数量。

最后遍历一遍set再加上rec即可。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<set>
#define maxn 200500
using namespace std;
set <int> s[maxn];
int n,m,x,y,ans[maxn],rec[maxn];
set <int> ::iterator it;
char ss[2];
void work1()
{
    scanf("%d",&x);
    rec[x]++;
}
void work2()
{
    scanf("%d%d",&x,&y);
    s[x].insert(y);
    s[y].insert(x);
    ans[x]-=rec[y];
    ans[y]-=rec[x];
}
void work3()
{
    scanf("%d%d",&x,&y);
    s[x].erase(y);
    s[y].erase(x);
    ans[x]+=rec[y];
    ans[y]+=rec[x];
}
int main()
{
    scanf("%d%d",&n,&m);
    for (int i=1;i<=m;i++)
    {
        scanf("%s",ss);
        if (ss[0]==!) work1();
        else if (ss[0]==+) work2();
        else work3();
    }
    for (int i=1;i<=n;i++)
    {
        for (it=s[i].begin();it!=s[i].end();it++)
        {
            int now=*it;
            ans[i]+=rec[now];
        }
    }
    for (int i=1;i<=n-1;i++)
        printf("%d ",ans[i]);
    printf("%d\n",ans[n]);
    return 0;
}

 

BZOJ 4419 发微博

标签:

原文地址:http://www.cnblogs.com/ziliuziliu/p/5470337.html

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