2021年初寒假训练第24场 B. 庆功会(搜索)

简介: 2021年初寒假训练第24场 B. 庆功会(搜索)

Description

NOIP结束之后,为了庆祝同学们取得的优异成绩,学校决定召开一次 Party。发邀请函的工作交到了你的手上。

为了能让这次Party开得圆满顺利,对于这次邀请的同学们有两个要求:首先,每个同学认识的同学不少于a个,否则的话这个同学会感到孤单;其次,每个同学不认识的同学不少于b个,否则的话他(她)就没有机会认识新朋友。

但是学校想让这次Party开得越大越好。所以请你计算一下,最多可以邀请多少个同学?

Input

第一行四个数,N,M,a,b。总共有 N 个同学,这些同学从 1 到 N编号。

后接 MM行,每行两个数 ai、bi,表示这两个同学互相认识。

Output

一行一个数,表示最多可以邀请的同学数。

Samples

Input

4 3 1 1
1 2
2 3
3 4

Output

4

Input

5 5 2 1 
2 3 
3 1 
4 5 
3 4 
2 5

Output

4

Hint

【数据规模】

对于20%的数据,N<20。

对于全部的数据,1≤a,b≤N≤500,0≤M≤N∗(N–1)/2。


思路:


正着考虑不好处理,考虑反着考虑。


假设开始的时候所有人都被选上,那么有哪些人是不应当选的呢。


就是认识的人小于a或是不认识的人小于b的人。


把这些人去除后,会对剩下的人产生影响。


dfs处理就好了。


OJ有点卡快读。


代码:

const int maxn=510;
int mp[maxn][maxn];
int da[maxn],db[maxn];
int n,m,a,b;
bool vis[maxn];
void dfs(int u){
  for(int i=1;i<=n;i++)
    if(!vis[i]){//优化
      if(mp[u][i]) da[i]--;///认识的话,认识的人-1 
      else db[i]--;//否则,不认识的人-1 
      if(da[i]<a||db[i]<b){
        vis[i]=1;
        dfs(i);
      }
    }
} 
void solve(){
  scanf("%d%d%d%d",&n,&m,&a,&b);
//  n=read(),m=read(),a=read(),b=read();
  for(int i=1;i<=m;i++){
    //int u=read(),v=read();
    int u,v;
    scanf("%d%d",&u,&v);
    da[u]++;da[v]++;
    mp[u][v]=mp[v][u]=1;///两人认识 
  }
  for(int i=1;i<=n;i++)
    db[i]=n-da[i]-1;
  for(int i=1;i<=n;i++){
    if(!vis[i]&&(da[i]<a||db[i]<b)){
      ///一定不行
      vis[i]=1;
      dfs(i);///该人不来参加对其他人的影响 
    }
  }
  int res=0;
  for(int i=1;i<=n;i++)
    if(!vis[i]) res++;///合理 
  printf("%d\n",res);
}
目录
相关文章
|
机器学习/深度学习 算法 数据挖掘
阿里音乐流行趋势预测—冠军答辩(一)|学习笔记
快速学习阿里音乐流行趋势预测—冠军答辩(一)
695 0
|
数据采集 机器学习/深度学习 算法
阿里音乐流行趋势预测—冠军答辩(二)|学习笔记
快速学习阿里音乐流行趋势预测—冠军答辩(二)
418 0
|
1月前
|
机器学习/深度学习 人工智能 数据可视化
太强!AI没有落下的腾讯出YOLO-World爆款 | 开集目标检测速度提升20倍,效果不减
太强!AI没有落下的腾讯出YOLO-World爆款 | 开集目标检测速度提升20倍,效果不减
425 0
|
9月前
|
机器学习/深度学习 人工智能 自然语言处理
牛刀小试:我用自创的测试集参加了阿里中文竞技场双模型评测
8月我自己创建了一个包含320个问题的大语言模型测试集,刚好阿里魔搭社区正在举办中文模型评测活动,本着对这些模型效果的好奇,刚好手里也有“验丹指南”,所以就抽时间来玩一把模型测试。
|
数据采集 SQL 算法
阿里音乐流行趋势预测—亚军答辩(一)|学习笔记
快速学习阿里音乐流行趋势预测—亚军答辩(一)
378 0
|
机器学习/深度学习 数据可视化 数据库
Kaggle第一人 | 详细解读2021Google地标识别第一名解决方案(建议全文背诵)(二)
Kaggle第一人 | 详细解读2021Google地标识别第一名解决方案(建议全文背诵)(二)
119 0
|
机器学习/深度学习 算法 PyTorch
Kaggle第一人 | 详细解读2021Google地标识别第一名解决方案(建议全文背诵)(一)
Kaggle第一人 | 详细解读2021Google地标识别第一名解决方案(建议全文背诵)(一)
260 0
|
自然语言处理 搜索推荐
4款「ChatGPT搜索」全面对比!斯坦福华人博士纯手工标注:新必应流畅度最低,近一半句子都没引用
4款「ChatGPT搜索」全面对比!斯坦福华人博士纯手工标注:新必应流畅度最低,近一半句子都没引用
223 0
|
机器学习/深度学习 C++
百度飞桨世界冠军带你从零实践强化学习第五天(三岁白话时间)
百度飞桨世界冠军带你从零实践强化学习第五天(三岁白话时间)
170 0
百度飞桨世界冠军带你从零实践强化学习第五天(三岁白话时间)