https://codeforces.com/contest/1037/problem/E

题意

有n个人,m天,在第i天早上,x和y会成为朋友,每天晚上大家都要上车,假如一个人要上车那么他得有至少k个朋友上车,输出每天晚上上车人数

题解

  • 一个点的度数<k,他就上不了车
  • 假如一个人上不了车,那么他对他的朋友就没有了价值,就等于把边去掉
  • 离线处理,反着消边
  • 因为每条边只能走一次,所以标记边bfs

代码

#include<bits/stdc++.h>
#define MAXN 200005
#define mk make_pair
using namespace std;
int n,m,k,u[MAXN][2],in[MAXN],a[MAXN];
vector<int>G[MAXN];
queue<int>Q;
map<pair<int,int>,int>del;
int main(){
cin>>n>>m>>k;
for(int i=1;i<=m;i++){
int x,y;
scanf("%d%d",&x,&y);
u[i][0]=x;u[i][1]=y;
in[x]++;in[y]++;
G[x].push_back(y);G[y].push_back(x);
}
int ans=n;
for(int i=1;i<=n;i++){
if(in[i]<k){ans--;Q.push(i);}
}
while(!Q.empty()){
int u=Q.front();Q.pop();
for(auto v:G[u]){
if(del[mk(u,v)]==1)continue;
del[mk(u,v)]=del[mk(v,u)]=1;
if(in[v]<k)continue;
in[v]--;
if(in[v]<k){ans--;Q.push(v);}
}
}
a[m]=ans;
for(int i=m;i>1&&ans>0;i--){
int x=u[i][0],y=u[i][1];
if(del[mk(x,y)]==1){a[i-1]=ans;continue;}
del[mk(x,y)]=del[mk(y,x)]=1;
in[x]--;in[y]--;
if(in[x]<k){ans--;Q.push(x);}
if(in[y]<k){ans--;Q.push(y);} while(!Q.empty()){
int u=Q.front();Q.pop();
for(auto v:G[u]){
if(del[mk(u,v)]==1)continue;
del[mk(u,v)]=del[mk(v,u)]=1;
if(in[v]<k)continue;
in[v]--;
if(in[v]<k){ans--;Q.push(v);}
}
}
a[i-1]=ans;
}
for(int i=1;i<=m;i++)printf("%d\n",a[i]);
}

最新文章

  1. 解决tomcat启动Socket监听端口死循环被hold问题
  2. C读取文件
  3. 01---Net基础加强
  4. windows服务器记录3389远程桌面IP策略
  5. 行为识别(action recognition)相关资料
  6. Centos硬件信息查看命令
  7. Oralce9 的新方法: Merge into Using
  8. MATLAB中的结构数组
  9. matlab里textread出现错误“Trouble reading floating point number from file (row 1, field 1)”
  10. google ip地址
  11. Android开发技巧——高亮的用户操作指南
  12. &amp;&amp;和&amp;、||和|的区别
  13. Config Server高可用
  14. AIM Tech Round 5 (rated, Div. 1 + Div. 2) (A, B, E)
  15. 您的快递(高并发服务器之poll和epoll)请签收
  16. python flask 接口
  17. .Net C#向远程服务器Api上传文件
  18. jquery.fullpage 全屏滚动
  19. linux第一个C语言和sh脚本
  20. redis 类型、方法

热门文章

  1. Zookeeper中Watcher监听实现增删改
  2. 新增SAP到OA接口,OA怎么更新WSDL给PI,怎么选择PI的IP地址(备忘)
  3. 转:用 Python 一键分析你的上网行为, 看是在认真工作还是摸鱼
  4. Python爬取上交所一年大盘数据
  5. Srping MVC ant路径匹配
  6. WKWebView使用遇到的坑--加载本地html及JS交互
  7. element-ui更改滚动条颜色
  8. Java并发编程艺术读书笔记
  9. Python—路由追踪(并生成追踪图片)
  10. JavaScript判断是否是数字