详见代码

#include<cstdio>
#include<iostream>
#include<cstring>
#include<vector>
#include<map>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long ll;
const int N=2e5+10;int h[N],e[N<<1],ne[N<<1],idx=0;
void add(int a,int b){e[idx]=b,ne[idx]=h[a],h[a]=idx++;return ;}
int n,m,q;
int cham[N],bs[N],big[N],in[N],id[N],ans[N];
vector<int>c[N];//存附近的大点 ;
vector<int>B[550][11000];//存大点附近的小点; int main()
{memset(h,-1,sizeof h);scanf("%d%d%d",&n,&m,&q);int siz=sqrt(n)+1;while(m--){int a,b;scanf("%d%d",&a,&b); add(a,b),add(b,a);in[a]++,in[b]++;}idx=1;for(int i=1;i<=n;i++)if(in[i]>siz)id[i]=idx++;//给大点编号1-idx-1; for(int i=1;i<=n;i++)if(id[i])//大点 for(int u=h[i];~u;u=ne[u])if(id[e[u]])//附近的大点 c[i].push_back(e[u]);for(int t=1;t<=q;t++)   //大点-大点   更新大点的时候对大点无影响 {                       //大点-小点   更新大点的时候遍历小点int a,b;            //小点-大点   更新小点的时候要把他加到对应大点的步数中因为大点对应小点的步数要枚举; scanf("%d%d",&a,&b);//小点-小点   更新小点的时候对小点没影响 bs[a]+=b;    //步数加 if(id[a]&&!cham[a]) //所以如果是冠军并且是大点的话就不用了; {int ma=0;       for(int i=0;i<c[a].size();i++)//大点附近的大点; {int j=c[a][i];ma=max(ma,bs[j]);if(cham[j]&&bs[a]>=bs[j])ans[j]+=t-cham[j],cham[j]=0;}for(int i=bs[a]-b+1;i<=bs[a];i++)for(auto u:B[id[a]][i])if(cham[u]&&bs[u]<=bs[a])ans[u]+=t-cham[u],cham[u]=0;//更新;
//          int i=10000;    //这步感觉可以存个big数组,。。。。 //不存的话就卡时间了;
//          while(!B[id[a]][i].size())i--;ma=max(ma,big[a]);    if(!cham[a]&&ma<bs[a])cham[a]=t;}else if(!id[a]){//小点 遍历 int ma=0;for(int i=h[a];~i;i=ne[i]){int j=e[i];ma=max(ma,bs[j]);if(id[e[i]])B[id[e[i]]][bs[a]].push_back(a),big[j]=max(big[j],bs[a]);if(cham[j]&&bs[a]>=bs[j])ans[j]+=t-cham[j],cham[j]=0;}if(bs[a]>ma&&!cham[a])cham[a]=t;}}for(int i=1;i<=n;i++){if(cham[i])ans[i]+=q-cham[i];printf(i==n?"%d":"%d\n",ans[i]);}return 0;
}

L :WeChat Walk相关推荐

  1. 2021牛客多校2 - WeChat Walk(分块)

    题目链接:点击查看 题目大意:给出 nnn 个人,再给出 mmm 对好友关系,每个人都有一个朋友圈用来显示微信步数.现在有 qqq 次操作,每次操作会让某个人的微信步数增加,问最后对于每个人来说,在自 ...

  2. 重启随机游走算法(RWR:Random Walk with Restart)

    重启随机游走算法(RWR:Random Walk with Restart) 1 pagerank算法的基本原理 Pagerank算法是Google的网页排名算法,由拉里佩奇发明.其基本思想是民主表决 ...

  3. Leetcode打卡四:将给定的单链表L: L 0→L 1→…→L n-1→L n, 重新排序为: L 0→L n →L 1→L n-1→L 2→L n-2→… 要求使用原地算法,并且不改变节点的

    题目: 将给定的单链表L: L 0→L 1→-→L n-1→L n, 重新排序为: L 0→L n →L 1→L n-1→L 2→L n-2→- 要求使用原地算法,并且不改变节点的值 例如: 对于给定 ...

  4. 给定单链表L:L0→L1→...→Ln-1→Ln, 重新排序:L0→Ln→L1→Ln-1→L2→Ln-2→...

    1.重排链表 给定一个单链表 L:L0→L1→-→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→- 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换 ...

  5. GNN笔记: random walk

    1 随机游走定义 所谓随机游走(random walk),就是在网络上不断重复地随机选择游走路径,最终形成一条贯穿网络的路径. 从一个顶点出发,然后按照一定的概率随机移动到一个邻居节点,并将该节点作为 ...

  6. ZOJ 3992 2017CCPC秦皇岛 L:One-Dimensional Maze

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3992 题意: 一条长度为n的直线,你一开始在位置m上 其中每个整 ...

  7. 进阶指令——wc指令【作用:统计文件内容信息(包含行数、单词数、字节数)】、date指令【作用:表示操作时间日期(读取、设置)】、cal指令【作用:用来操作日历的】、clear/ctrl + L指令

    6.wc指令 作用:统计文件内容信息(包含行数.单词数.字节数) 语法:#wc -l                wc 需要统计的文件路径 -l:表示lines,行数 -w:表示words,单词数 ...

  8. 计算机想ping一下网络,请问下大家: 用 ping 命令ping /-n/-t/-l/-a/-f/-i/-v/-r/-s/-j/-k/-w/-1...

    ping命令参数详细解释 -a 将目标的机器标识转换为ip地址 -t 若使用者不人为中断会不断的ping下去 -n count 要求ping命令连续发送数据包,直到发出并接收到count个请求 -d ...

  9. 随机游走(Random Walk)模型详解:历史||数学表示||物理意义

    随机游走 随机游走(Random Walk,缩写为 RW),是一种数学统计模型,它是一连串的轨迹所组成,其中每一次都是随机的.它能用来表示不规则的变动形式,如同一个人酒后乱步,所形成的随机过程记录. ...

最新文章

  1. 基于时序数据的微内核预警引擎架构设计
  2. 小程序 按需_小程序后台操作,新手需知道的几个要点
  3. 微信的充值页面为啥长这样?(多图)
  4. windows下的终端工具和产品力
  5. mysql去除内容中的换行和回车
  6. java8简化的可变参数调用,Java8新特性--方法引用
  7. LeetCode 424. 替换后的最长重复字符(双指针+滑动窗口)
  8. Web终端SSH功能
  9. 台式计算机诞生,生物电脑 ①1946年,世界上第一台计算机诞生,这个庞然大物开创了一个电脑时代。从那时候起,人们不断革新、创造,把庞然大物的体积一减再减,现在我们所见的台式电脑、掌上电脑...
  10. 如何利用shell查看Ubuntu系统版本号和电脑类型
  11. 软件研发中也有5S 管理?
  12. 【web前端性能优化】12.css sprite(图片精灵)-雪碧图实现原理
  13. 14款开源或免费的GIS软件
  14. Team:Syclover Author:L3m0n Email:iamstudy@126.com
  15. word2vec利用词向量进行中文新闻标题相似度分析
  16. 工具推荐 | 分析大数据最需要的Top 10数据挖掘工具
  17. Jenkins安装时Web页面报错:该Jenkins实例似乎已离线
  18. 第一章 无线通信收发机结构 杨远望 和习题
  19. HeadFirst_HTML5 O'REILLY_Chap.2_JavaScript和DOM
  20. 微信小程序个人中心跳转页面进行授权登录

热门文章

  1. Python到底是有什么魅力,让程序猿为它折腰?
  2. 提升方法之AdaBoost算法
  3. c语言字符比较思路,C语言讲解思路资料
  4. 服务器抽屉式维护,一种服务器用可顺序运动的滑轨
  5. boostrap 鼠标滚轮滑动图片_16种基于Bootstrap的css3图片hover效果
  6. android qq红包,Android实现QQ抢红包插件
  7. linux path减少,Linux的环境变量PATH中所带来的问题及解决方法
  8. websocket文档_WebSocket推送 原理扫盲到上手实践
  9. apt-get 更新指定软件_GrandPerspective for mac(磁盘管理软件)
  10. linux truncate文件,linux系统编程:用truncate调整文件大小