#搜索,剪枝,网络流,最大匹配#ssl 2123 民生问题

2024-02-11 05:48

本文主要是介绍#搜索,剪枝,网络流,最大匹配#ssl 2123 民生问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

后两个是吸引你点进来的,根本不存在

题目

在这里插入图片描述


分析

其实是正解应该是网络流的题目,这里用深搜+剪枝实现
1.深搜时找到比当前最优解不优的答案直接退出
2.预处理可以不需要的专家(有专家完全替代他)
3.对于问题只有一个专家能解决的,该专家必选,该专家的会的其他问题可以标记不需要


代码

#include <cstdio>
#define rr register
using namespace std;
int m,n,ans,p[61][61],a[61][7],b[61],v[61],now; bool e[61][61];
inline void dfs(int dep,int now){if (now>=ans) return;//不可能更优if (dep>m){//选完问题了ans=now;return;}for (rr int i=1;i<=p[dep][0];++i){rr int t=p[dep][i];for (rr int j=1;j<=a[t][0];++j) ++v[a[t][j]];//选择该专家rr int j=dep+1; while (v[j]) ++j; dfs(j,now+1);//下一个问题的位置for (rr int j=1;j<=a[t][0];++j) --v[a[t][j]];//回溯}
}
signed main(){scanf("%d%d",&m,&n); ans=n;for (rr int i=1;i<=n;++i){scanf("%d",&a[i][0]);for (rr int j=1;j<=a[i][0];++j)scanf("%d",&a[i][j]),e[i][a[i][j]]=1;}for (rr int i=1;i<=n;++i)for (rr int j=1;j<=n;++j)if (i!=j&&!b[i]&&!b[j]){rr int flag=1;for (rr int k=1;k<=m&&flag;++k)flag=!e[i][k]||e[j][k];b[i]=flag;//找出能够不要的科学家}for (rr int i=1;i<=n;++i)if (!b[i])for (rr int j=1;j<=a[i][0];++j)p[a[i][j]][++p[a[i][j]][0]]=i;for (rr int i=1;i<=m;++i)if (p[i][0]==1&&!b[p[i][1]]){//只有一个科学家会for (rr int j=1;j<=a[p[i][1]][0];++j) ++v[a[p[i][1]][j]];b[p[i][1]]=1; ++now;}rr int t=1; while (v[t]) ++t;dfs(t,now); printf("%d",ans);return 0;
}

这篇关于#搜索,剪枝,网络流,最大匹配#ssl 2123 民生问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/698977

相关文章

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

详解nginx 中location和 proxy_pass的匹配规则

《详解nginx中location和proxy_pass的匹配规则》location是Nginx中用来匹配客户端请求URI的指令,决定如何处理特定路径的请求,它定义了请求的路由规则,后续的配置(如... 目录location 的作用语法示例:location /www.chinasem.cntestproxy

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息