H.Message Bomb

题目链接-H.Message Bomb




题目大意
输入sss行数据,
如果t=1t=1t=1,则表示第x个学生加入了第yyy个组。可以肯定的是,这个学生以前不在这个小组里。
如果t=2t=2t=2,则表示第x个学生退出了第yyy个组。可以肯定的是,这名学生目前就在这个组里。
如果t=3t=3t=3,则表示第xxx个学生在第yyy个组中发送了一条消息,可以肯定的是,那个学生现在就在小组里
消息将广播给当前在同一组中的所有其他成员,求最后每个人各自收到的消息总数

解题思路
差分思想差分思想差分思想

  • 可以用set统计每个学生加入的组,数组bbb统计每个组一共中发消息的条数,数组aaa作为差分数组统计每个人各自收到的消息数
  • 当进组时我们就用s[x].insert(y)统计,同时a[x]-=b[y],即先减去进组之前的消息数,退组时就用s[x].erase(y)将该组删除,然后只需a[x]+=b[y],加上现在该组消息的总数,根据差分思想,即相当于加上从进组到退组这段时间xxx在yyy组收到的消息总数
  • 当xxx在yyy组发邮件时,因为消息将广播给当前在同一组中的所有其他成员,所以只需a[x]--,b[y]++(a[x]--是为了避免后续统计消息数时加上自己发的消息)
  • 最后重新按照第二条遍历一遍每人所加入的组,加上相应的邮件数输出即可
  • 具体操作见代码

附上代码

#pragma GCC optimize("-Ofast","-funroll-all-loops")
#include<bits/stdc++.h>
#define int long long
#define lowbit(x) (x &(-x))
#define endl '\n'
using namespace std;
const int INF=0x3f3f3f3f;
const int dir[4][2]={-1,0,1,0,0,-1,0,1};
const double PI=acos(-1.0);
const double e=exp(1.0);
const double eps=1e-10;
const int M=1e9+7;
const int N=2e5+10;
typedef long long ll;
typedef pair<int,int> PII;
typedef unsigned long long ull;
inline void read(int &x){char t=getchar();while(!isdigit(t)) t=getchar();for(x=t^48,t=getchar();isdigit(t);t=getchar()) x=x*10+(t^48);
}
set<int> s[N];
int a[N],b[N];
signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n,m,s1;cin>>n>>m>>s1;while(s1--){int t,x,y;cin>>t>>x>>y;if(t==1){a[x]-=b[y];s[x].insert(y);}else if(t==2){a[x]+=b[y];s[x].erase(y);}else{b[y]++;a[x]--;}}set<int>::iterator it;for(int i=1;i<=m;i++){for(it=s[i].begin();it!=s[i].end();it++)a[i]+=b[*it];cout<<a[i]<<endl;}return 0;
}

2020 China Collegiate Programming Contest Weihai Site H.Message Bomb相关推荐

  1. 2020 China Collegiate Programming Contest Weihai Site补题部分

    A. Golden Spirit 签到题,首先把所有老人带到对岸,然后在对休息讨论一下即可. #define IO ios::sync_with_stdio(false);cin.tie();cout ...

  2. 2020 China Collegiate Programming Contest Qinhuangdao Site 补题部分

    已经补AEFGK E. Exam Results 枚举+二分+动态开点权值线段树O(nlogN)O(nlogN)O(nlogN) 智商太低,想不到什么贪心只能暴力数据结构维护 对于所有学生的最高成绩只 ...

  3. 2020 China Collegiate Programming Contest, Weihai B Labyrinth

    写在前面: 这题赛时就过了二十多个人感觉还是榜歪了,完全没有到金牌题的水平,算是一道纯思维题吧,只需要简单的bfs,而且赛中也有一些铜牌区的队伍能过,所以还是要敢于开题,说不定就能写呢 题目链接 La ...

  4. acm-(辗转相除法、丢番图方程)2020 China Collegiate Programming Contest Qinhuangdao Site I. Interstellar Hunter

    传送门 本题其实就是给定若干个整数向量(x1,y1),(x2,y2),...,(xn,yn)(x_1,y_1),(x_2,y_2),...,(x_n,y_n)(x1​,y1​),(x2​,y2​),. ...

  5. 2020 China Collegiate Programming Contest Changchun F - Strange Memory(dsu on tree + 位运算小技巧)

    题目连接: https://codeforces.com/gym/102832/problem/F 首先写这个题的时候要注意内存的问题 不要瞎几把define int long long 题解: 考虑 ...

  6. 2018 China Collegiate Programming Contest - Jilin Site F - The Hermit HDU - 6560 思维

    链接Problem - 6560 题意 有n个站点每个站点可以发送完美信号 关于完美信号的定义 有i j k三个站点 分别保证 i<j<k dis(i,j)> dis(j,k) 并且 ...

  7. acm -(并查集、启发式合并、gcd、枚举因子)2020 China Collegiate Programming Contest Changchun Onsite K. Ragdoll

    传送门 本题考虑直接对每个iii求出所有满足ij=gcd(i,j)i^j=gcd(i,j)ij=gcd(i,j)的jjj,然后存在ggg数组中,对于查询修改操作维护一个并查集即可,合并的时候采用启发式 ...

  8. 2016 China Collegiate Programming Contest Final

    2016 China Collegiate Programming Contest Final Table of Contents 2016 China Collegiate Programming ...

  9. 2019 China Collegiate Programming Contest Qinhuangdao Onsite F. Forest Program

    2019 China Collegiate Programming Contest Qinhuangdao Onsite F. Forest Program 题目链接 The kingdom of Z ...

最新文章

  1. 国产的markdown 语法的思维导图和大纲工具!
  2. Ubuntu 下配置 SSH服务全过程及问题解决
  3. 主梁弹性模量计算_收藏 | 钢结构计算公式
  4. mysql proxy 读写分离 1
  5. Tomcat 教程之快速入门
  6. Spring事务管理-传播行为-隔离级别
  7. ios业务模块间互相跳转的解耦方案
  8. POJ - 2828 Buy Tickets(线段树+思维/Splay+模拟)
  9. SAP Fiori Elements drop down list debug
  10. 小白学深度之LSTM长短期记忆神经网络——深度AI科普团队
  11. Pandas dtypes(数据类型)
  12. 【定量分析、量化金融与统计学】分类变量与多元非线性关系与子集的选择
  13. 安徽农业大学计算机考研分数线,安徽农业大学2019年考研复试分数线已公布
  14. HUNNU 11786 Sir Charles Antony Richard Hoare
  15. 桥接模式和装饰器模式
  16. android nfc扇区加密,android NFC MifareClassic 读IC卡加密扇区方法
  17. 【深度域适配】一、DANN与梯度反转层(GRL)详解
  18. dw版权信息栏如何制作_dw网页制作过程?用dw怎么制作网页?
  19. h3c交换机模拟器怎么用_由浅入深学习网络设备模拟器HCL 第二篇 交换机的基本配置...
  20. Office计算机心得,2020计算机实训心得体会-范例

热门文章

  1. 微医网爬虫(二) java实现
  2. OpenStack架构
  3. 解决vs2019 16.5版本中 编译虚幻4c++ bool值报错问题
  4. 在解决prob中遇到的prob...
  5. MKS电源维修RPG-50A射频电源维修OPTIMA RPG系列
  6. 互联网公司如何塑造一支有创业精神的技术团队?
  7. 2018年区块链十大发展势头
  8. MODBUS-RS485布线的8条准则
  9. bzoj 3811: 玛里苟斯【线性基+期望dp】
  10. SPA SEO SSR三者有什么区别