信息学奥赛一本通链接


题目

求最少打击的团伙数,并且使最大的团伙危险程度不超过n/2。


分析

从nnn到111逆向枚举,每次把点kkk加入图中,也就是删掉1∼k−11\sim k-11∼k−1,剩余k∼nk\sim nk∼n,若最大集合点数不超过n/2n/2n/2,说明这种方案可行,kkk还能更小,一旦不满足,意味着第kkk个点加入图中就不可行了,所以点kkk必须得删,所以输出答案。


邻接矩阵代码(0ms 5152k)

#include <cstdio>
#include <cctype>
using namespace std;
int n,a[1001][1001],c[1001],f[1001];
int in(){int ans=0; char c=getchar();while (!isdigit(c)) c=getchar();while (isdigit(c)) ans=ans*10+c-48,c=getchar();return ans;
}
int getf(int u){return (f[u]==u)?u:f[u]=getf(f[u]);}
int main(){n=in();for (int i=1;i<=n;i++){c[i]=1; f[i]=i; a[i][0]=in();for (int j=1;j<=a[i][0];j++)a[i][j]=in();}for (int k=n;k>=1;k--)for (int i=1;i<=a[k][0];i++)if (a[k][i]>k){//加入int x=getf(k),y=getf(a[k][i]);if (x!=y){//不同集合f[y]=x;c[x]+=c[y];//团伙if (c[x]>n/2){//超过printf("%d",k);return 0;}}}
}

邻接表代码(0ms 1276k)

#include <cstdio>
#include <cctype>
using namespace std;
struct node{int y,next;}e[5001];//不可能太多的
int n,m,ls[1001],c[1001],f[1001];
int in(){int ans=0; char c=getchar();while (!isdigit(c)) c=getchar();while (isdigit(c)) ans=ans*10+c-48,c=getchar();return ans;
}
int getf(int u){return (f[u]==u)?u:f[u]=getf(f[u]);}
int main(){n=in(); int t,x,y;for (int i=1;i<=n;i++){c[i]=1; f[i]=i; t=in();for (int j=1;j<=t;j++){//邻接表e[++m].y=in();e[m].next=ls[i]; ls[i]=m;}}for (int k=n;k>=1;k--){t=ls[k];while (t){if (e[t].y>k){//犯罪团伙x=getf(k); y=getf(e[t].y);if (x!=y){//不在集合f[y]=x;c[x]+=c[y];if (c[x]>n/2){//超过printf("%d",k);return 0;}}}t=e[t].next;}}
}

#并查集#SSL 2342 信息学奥赛一本通 1386 打击犯罪相关推荐

  1. 信息学奥赛一本通 1386:打击犯罪(black)

    [题目链接] ybt 1386:打击犯罪(black) [题目考点] 1. 并查集 [解题思路] 这是个无向图.每个犯罪团伙是一个顶点,犯罪团伙之间的联系是边,每个犯罪集团是一个连通分量. 以下描述中 ...

  2. 信息学奥赛一本通(基础算法与数据结构-题解汇总目录)

    信息学奥赛一本通(C++版)在线评测系统 基础(二)基础算法   更新中...... 第一章高精度计算 1307[例1.3]高精度乘法 1308[例1.5]高精除 1309[例1.6]回文数(Noip ...

  3. 信息学奥赛一本通 (C++)上机练习

    信息学奥赛一本通(C++)上机练习 此书为娃儿的第一本刷题书.娃儿现在四年级 ,希望他能坚持下来.特开贴加油 luogu: disangan223 第一部分 C++语言 第一章 C++语言入门 T10 ...

  4. 最近公共祖先三种算法详解 + 模板题 建议新手收藏 例题: 信息学奥赛一本通 祖孙询问 距离

    首先什么是最近公共祖先?? 如图:红色节点的祖先为红色的1, 2, 3. 绿色节点的祖先为绿色的1, 2, 3, 4. 他们的最近公共祖先即他们最先相交的地方,如在上图中黄色的点就是他们的最近公共祖先 ...

  5. 信息学奥赛一本通 第五版(C++版)

    信息学奥赛一本通 第五版(C++版)第一部分 C++语言 第一章 C++语言入门 第二节 C++语言程序设计 P15 1. 编写一个能够输出Hello,World!的程序,这个程序常常作为一个初学者接 ...

  6. 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划

    总目录详见:https://blog.csdn.net/mrcrack/article/details/86501716 信息学奥赛一本通(C++版) 第二部分 基础算法 第九章 动态规划 第一节 动 ...

  7. 信息学奥赛一本通_长乐一中老师演绎“奥赛传奇”

    董永建(右一)在课堂上. 台海网5月14日讯 据福州晚报报道,长乐一中有一位"传奇"老师--15年来,他辅导的学生在全国高中生信息学奥赛中获金牌3人次.银牌3人次.铜牌5人次:在全 ...

  8. 信息学奥赛一本通 提高篇 第5章 矩阵乘法

    例1 矩阵AXB 信息学奥赛一本通(C++版)在线评测系统 [矩阵乘法]矩阵A×B_Uletay-CSDN博客 矩阵乘法--矩阵A×B_vina的博客-CSDN博客 一本通1641[例 1]矩阵 A× ...

  9. 《信息学奥赛一本通提高篇》第6章 组合数学

    例1 计算系数(NOIP2011提高) 信息学奥赛一本通(C++版)在线评测系统 NOIP2011计算系数_nanhan27的博客-CSDN博客 「NOIP2011」 计算系数 - 组合数_TbYan ...

最新文章

  1. EBS-使用 fnd_user_pkg API 创建用户,添加职责,修改用户
  2. Python 基础教程:常用函数整理
  3. 算法导论-装配线调度问题
  4. python一元三次方程拟合_一元三次方程的求根公式
  5. 如何在 Apache 中为你的网站设置404页面
  6. 后宫佳丽三千,假如古代皇帝也懂负载均衡算法...
  7. sql两个时间之间的小时差_2年级学生每天上学路上有两个小时车程,该如何利用好这个时间?-知乎亲子热点快报/2020/09/04...
  8. Python入门 程序的套路
  9. 10-1 channel
  10. idea如何一个项目如何运行多个实例
  11. 使用Fiddler4抓取微信小程序请求
  12. 四步成为人工智能产品经理
  13. DongTai--被动型IAST工具部署体验
  14. 项目开发日记:陀螺仪的零漂现象
  15. c++语言计算圆周率,计算圆周率的C++程序(30000位)
  16. android 画布实现签名,Android实现屏幕手写签名
  17. Win7系统安装教程【附Win7/64位系统下载地址】
  18. 怎样将微信热门文章采集到自己的公众号中?
  19. Ubuntu 18.04 配置ibus中文拼音输入法
  20. 测试经理教你如何用monkey进行压力测试!

热门文章

  1. 富爸爸财务自由之路——财富自由之路的七个步骤
  2. 人工神经网络实验报告,生成数据的神经网络
  3. 关于输入电阻和输出电阻大小的讨论
  4. 宁波大学考博c语言真题,宁波大学考博英语历年真题及详解
  5. 概率论重修笔记 11矩估计和极大似然估计.md
  6. FE File Explorer Pro for Mac(强大的文件管理器)
  7. mybatis中type-aliases-package的用法
  8. Bypass上传与Bypass XSS
  9. 普通职场人,35岁以后失业怎么办?这是我见过最真诚的建议
  10. Tomcat架构浅析