zoukankan      html  css  js  c++  java
  • [BZOJ4419][SHOI2013]发微博

    考虑要让复杂度和操作数同阶,每次删除时统计下与对方成为好友的时刻到现在对方一共发了多少条微博即可,set维护,最后将所有仍为好友的全部处理掉。

    考虑不用set,操作倒序即可,类似差分思想。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<iostream>
     4 #include<algorithm>
     5 #define rep(i,l,r) for (int i=(l); i<=(r); i++)
     6 typedef long long ll;
     7 using namespace std;
     8 
     9 const int N=500010;
    10 char ch;
    11 int n,m,ans[N],num[N];
    12 struct P{ int op,x,y; }a[N];
    13 
    14 int main(){
    15     freopen("bzoj4419.in","r",stdin);
    16     freopen("bzoj4419.out","w",stdout);
    17     scanf("%d%d",&n,&m);
    18     rep(i,1,m){
    19         scanf(" %c",&ch); scanf("%d",&a[i].x);
    20         if (ch=='!') a[i].op=1;
    21         else{
    22             if (ch=='+') a[i].op=2; else a[i].op=3;
    23             scanf("%d",&a[i].y);
    24         }
    25     }
    26     for (int i=m; i; i--){
    27         if (a[i].op==1) num[a[i].x]++;
    28         if (a[i].op==2) ans[a[i].x]+=num[a[i].y],ans[a[i].y]+=num[a[i].x];
    29         if (a[i].op==3) ans[a[i].x]-=num[a[i].y],ans[a[i].y]-=num[a[i].x];
    30     }
    31     rep(i,1,n) printf("%d ",ans[i]);
    32     return 0;
    33 }
  • 相关阅读:
    (find) nyoj5-Binary String Matching
    (replace find)nyoj113-字符串替换
    (去重 sort)nyoj8-一种排序
    (模拟 打好基础) nyoj1363-计划日
    一种颜色怎么搭配
    动态识别类型
    swift与OC混合编程
    IOS动画效果
    NSAlert
    NSButton文本颜色设置和Action两种状态行为
  • 原文地址:https://www.cnblogs.com/HocRiser/p/9940698.html
Copyright © 2011-2022 走看看