zoukankan      html  css  js  c++  java
  • BZOJ 4419 发微博

    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
    ",ans[n]);
        return 0;
    }
  • 相关阅读:
    杨辉三角
    数组的两种输出方法
    整数分割各位数
    Fibonacci
    imageview圆角的实现
    listview定位到上次显示的位置
    安卓客户端 扫描二维码登陆
    java,UDP协议简单实现
    java 反射机制的实例
    js中正则表达式 书写方法
  • 原文地址:https://www.cnblogs.com/ziliuziliu/p/5470337.html
Copyright © 2011-2022 走看看