[BZOJ4419][Shoi2013]发微博(map)
来源:互联网 发布:江苏公务员待遇知乎 编辑:程序博客网 时间:2024/05/22 14:43
题目描述
传送门
题解
用stl水水
对于每一个人记录发了几条微博,维护一个朋友圈,朋友圈里的每一个人有一个权,维护保证权+记录=这个人作为他的朋友的时候看到他发了几条微博
删除+最后 统计答案就行了
代码
#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>#include<map>using namespace std;#define N 500005int n,m;int cnt[N],ans[N];map <int,int> mp[N];int main(){ scanf("%d%d",&n,&m); for (int i=1;i<=m;++i) { char opt=getchar(); while (opt!='!'&&opt!='+'&&opt!='-') opt=getchar(); if (opt=='!') { int x;scanf("%d",&x); ++cnt[x]; } if (opt=='+') { int x,y;scanf("%d%d",&x,&y); mp[x][y]=-cnt[x]; mp[y][x]=-cnt[y]; } if (opt=='-') { int x,y;scanf("%d%d",&x,&y); ans[y]+=cnt[x]+mp[x][y]; ans[x]+=cnt[y]+mp[y][x]; mp[x].erase(y);mp[y].erase(x); } } for (int i=1;i<=n;++i) { map<int,int>::iterator t; for (t=mp[i].begin();t!=mp[i].end();++t) ans[t->first]+=t->second+cnt[i]; } for (int i=1;i<=n;++i) printf("%d%c",ans[i]," \n"[i==n]);}
0 0
- [BZOJ4419][Shoi2013]发微博(map)
- [bzoj4419][Shoi2013]发微博(STL)
- bzoj4419: [Shoi2013]发微博 (三种做法)
- 【BZOJ4419】[Shoi2013]发微博【set】
- [BZOJ4419][Shoi2013]发微博
- bzoj4419 [Shoi2013]发微博
- bzoj4419[Shoi2013]发微博
- bzoj 4419: [Shoi2013]发微博 (STL)
- 4419: [Shoi2013]发微博 set
- 【BZOJ】4419: [Shoi2013]发微博
- bzoj 4419: [Shoi2013]发微博
- 4419: [Shoi2013]发微博
- BZOJ 4419 [Shoi2013]发微博
- BZOJ 4419: [Shoi2013]发微博
- 4419: [Shoi2013]发微博|暴力|set
- BZOJ_P4419 [SHOI2013]发微博(STL+Set)
- bzoj 4419: [Shoi2013]发微博 乱搞
- 【BZOJ 4419】[Shoi2013]发微博 单纯暴力
- 单例模式(Singleton)的6种实现
- 抛砖引玉
- php+validate实现文本框的自动完成
- 封装继承多态举例
- 1014
- [BZOJ4419][Shoi2013]发微博(map)
- 视音频数据源的分析【知识点整理】
- Hello,world &Hello Ubuntu
- 关于二进制文件与文本文件
- 第三天
- 栈的应用
- listview优化策略(分页)
- html5的学习笔记
- 收藏