bzoj1143/2718 祭祀river(最大独立集)

 [CTSC2008]祭祀river

Time Limit: 10 Sec  Memory Limit: 162 MB
Submit: 2175  Solved: 1098
[Submit][Status][Discuss]

Description

在遥远的东方,有一个神秘的民族,自称Y族。他们世代居住在水面上,奉龙王为神。每逢重大庆典, Y族都
会在水面上举办盛大的祭祀活动。我们可以把Y族居住地水系看成一个由岔口和河道组成的网络。每条河道连接着
两个岔口,并且水在河道内按照一个固定的方向流动。显然,水系中不会有环流(下图描述一个环流的例子)。

 

由于人数众多的原因,Y族的祭祀活动会在多个岔口上同时举行。出于对龙王的尊重,这些祭祀地点的选择必
须非常慎重。准确地说,Y族人认为,如果水流可以从一个祭祀点流到另外一个祭祀点,那么祭祀就会失去它神圣
的意义。族长希望在保持祭祀神圣性的基础上,选择尽可能多的祭祀的地点。

Input

第一行包含两个用空格隔开的整数N、M,分别表示岔口和河道的数目,岔口从1到N编号。接下来M行,每行包

 

含两个用空格隔开的整数u、v,描述一条连接岔口u和岔口v的河道,水流方向为自u向v。 N ≤ 100 M ≤ 1 000

Output

  第一行包含一个整数K,表示最多能选取的祭祀点的个数。

Sample Input

4 4
1 2
3 4
3 2
4 2

Sample Output

2

【样例说明】
在样例给出的水系中,不存在一种方法能够选择三个或者三个以上的祭祀点。包含两个祭祀点的测试点的方案有两种:
选择岔口1与岔口3(如样例输出第二行),选择岔口1与岔口4。
水流可以从任意岔口流至岔口2。如果在岔口2建立祭祀点,那么任意其他岔口都不能建立祭祀点
但是在最优的一种祭祀点的选取方案中我们可以建立两个祭祀点,所以岔口2不能建立祭祀点。对于其他岔口
至少存在一个最优方案选择该岔口为祭祀点,所以输出为1011。

HINT

题解:一开始没看出来是二分图的裸题,我以为是并查集,然后Tarjan方面去思考问题了,
结果就是最大独立集,看起来概念,性质没有好好理解,对了还需要求一下传递闭包
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<cmath>
 4 #include<iostream>
 5 #include<algorithm>
 6 #define N 2007
 7 
 8 using namespace std;
 9 
10 int a[N][N],lk[N],f[N][N];
11 bool vis[N];
12 int n,m;
13 
14 bool find(int x)
15 {
16     for (int i=1;i<=n;i++)
17       if (a[x][i] && !vis[i])
18       {
19           vis[i]=1;
20           if (!lk[i]||find(lk[i]))
21           {
22               lk[i]=x;
23               return 1;
24           }
25       }
26     return 0;
27 }
28 
29 int main()
30 {
31     scanf("%d%d",&n,&m);
32     for (int i=1;i<=m;i++)
33     {
34         int x,y;
35         scanf("%d%d",&x,&y);
36         f[x][y]=1;
37     }
38     for (int k=1;k<=n;k++)
39       for (int i=1;i<=n;i++)
40         for (int j=1;j<=n;j++)
41           f[i][j]|=f[i][k]&&f[k][j];
42     for (int i=1;i<=n;i++)
43       for (int j=1;j<=n;j++)
44         if (f[i][j] && i!=j) a[i][j]=1;
45     int ans=n;
46     for (int i=1;i<=n;i++)
47     {
48         memset(vis,0,sizeof(vis));
49         if (find(i)) ans--;
50     }
51     printf("%d\n",ans);
52 }

 

转载于:https://www.cnblogs.com/fengzhiyuan/p/7588564.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

反向ajax实现

在过去的几年中&#xff0c;web开发已经发生了很大的变化。现如今&#xff0c;我们期望的是能够通过web快速、动态地访问应用。在这一新的文章系列中&#xff0c;我们学习如何使用反 向Ajax&#xff08;Reverse Ajax&#xff09;技术来开发事件驱动的web应用&#xff0c;以此来…

linux系统启动流程及常见问题的解决

一、前言计算机开机是一个神秘的过程。我们只是按了开机键&#xff0c;就看到屏幕上的进度条或者一行行的输出&#xff0c;直到我们到达登录界面。然而&#xff0c;计算机开机又是个异常脆弱的过程&#xff0c;我们满心期望的登录界面可能并不会出现&#xff0c;而是一个命令行…

使用.NET开发一个屏幕OCR工具

本文将介绍使用.NET开发的一款桌面截图 OCR 工具&#xff0c;软件已开源&#xff0c;地址&#xff1a;https://github.com/sangyuxiaowu/Snipping_OCR背景因为不同地方人们的使用习惯不同&#xff0c;国内可能截图更多的是使用QQ&#xff0c;微信等即时聊天工具提供的截图功能。…

segnet 编译与测试

segnet 编译与测试参考&#xff1a;http://sunxg13.github.io/2015/09/10/caffe/http://m.blog.csdn.net/lemianli/article/details/76687508http://blog.h5min.cn/u010069760/article/details/75258539&#xff08;注意&#xff1a;nakefile而非makefile.config&#xff09;1、…

Linux开启fileinfo扩展

在项目初始部署环境的时候&#xff0c;可能考虑的并不全面&#xff0c;就会少装一些扩展&#xff0c;这里讲解如何添加fileinfo扩展1、找到php安装的压缩包2、将压缩包cp到 /data目录下&#xff0c;并解压 cp php-7.0.30.tar.gz /data cd /data tar -zxvf php-7.0.30.tar.gz…

TemplateBinding与Binding区别,以及WPF自定义控件开发的遭遇

在上一次的文章WPF OnApplyTemplate 不执行 或者执行滞后的疑惑谈到怎么正确的开发自定义控件&#xff0c;我们控件的样式中&#xff0c;属性的绑定一般都是用TemplateBinding来完成,如下一个基本的按钮样式&#xff1a; <Style x:Key"SimpleButton" TargetType&q…

Layui版本的WPF开源控件库-Layui-WPF

大家好&#xff0c;我是沙漠尽头的狼。今天介绍一款Layui风格的WPF开源控件库&#xff0c;仓库信息如下&#xff1a;仓库地址&#xff1a;https://github.com/Layui-WPF-Team/Layui-WPF仓库截图&#xff1a;Layui-WPF关于Layui请点击此链接[1]了解&#xff0c;本文不做介绍&…

Mycat 之 通过Keepalived 实现高可用

一、系统拓扑图 一、操作方法 参考本博客的Nginx Keepalived 实现高可用转载于:https://blog.51cto.com/12965094/2164485

Nginx使用upstream实现动静分离

一、为什么要进行动静分离 分离资源&#xff0c;减少不必要到的请求消耗&#xff0c;减少请求延时。 注&#xff1a;我这里&#xff0c;是nginx处理静态资源&#xff0c;apache处理动态资源。 场景分析&#xff1a; 1、未分离之前的场景步骤 &#xff08;1&#xff09;客户…

HMAC

HMAC 的用途 HMAC 算法主要应用于身份验证&#xff0c;用法如下&#xff1a; 1.客户端发出登录请求2.服务器返回一个随机值&#xff0c;在会话记录中保存这个随机值3.客户端将该随机值作为密钥&#xff0c;用户密码进行 hmac 运算&#xff0c;递交给服务器4.服务器读取数据库中…

JS的原型链和继承

原型和原型链 原型prototype&#xff0c;在创建新函数的时候&#xff0c;会自动生成&#xff0c;而prototype中也会有一个constructor&#xff0c;回指创建该prototype的函数对象。 __proto__是对象或者实例中内置的[[prototype]]&#xff0c;其指向的是产生该对象的对象的prot…

Android 的滑动分析以及各种实现

一、滑动效果的产生滑动一个View&#xff0c;本质区别就是移动一个View。改变当前View所在的坐标&#xff0c;原理和动画相似不断改变坐标位置实现。实现View的滑动就必须监听滑动的事件&#xff0c;并且根据事件传入的坐标&#xff0c;动态且不断改变View的坐标&#xff0c;从…

微软产品 .NET 6 迁移之旅

“.NET性能不行&#xff01;”“.NET有什么像样的产品吗&#xff01;&#xff1f;”“升级到.NET 6有什么好处&#xff01;&#xff1f;”……听人扯淡还不如看看微软自己是怎么做的。本文将汇总一下微软的开发博客——这些博客均涉及微软将产品和服务迁移到.NET 6的成果。博客…

Navicat 连接 RDS数据库

场景介绍&#xff1a; 随着业务量的逐渐增加&#xff0c;公司的数据库压力也会逐渐增大&#xff0c;使用自己购买的esc创建的mysql的话&#xff0c;还得考虑相应的dba维护&#xff0c;也比较繁琐&#xff0c;说不定还做的并不完美&#xff0c;这时&#xff0c;RDS就派上用场了&…

bzoj1045 糖果传递

Description 有n个小朋友坐成一圈&#xff0c;每人有ai个糖果。每人只能给左右两人传递糖果。每人每次传递一个糖果代价为1。 Input 第一行一个正整数nn<1000000&#xff0c;表示小朋友的个数&#xff0e;接下来n行&#xff0c;每行一个整数ai&#xff0c;表示第i个小朋友得…

BEGINNING SHAREPOINT#174; 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 client对象模型API范围...

BEGINNING SHAREPOINT 2013 DEVELOPMENT 第9章节--client对象模型和REST APIs概览 client对象模型API范围 本章之前提到过。client对象模型应用中一个不足就是缺乏对SP APIs和訪问功能的支持不足。转载于:https://www.cnblogs.com/yutingliuyl/p/6748382.html

为.NET应用添加截图功能

本文介绍了 .NET 实现截图功能的思路和过程&#xff0c;如果你仅想了解最后的解决方案&#xff0c;可以直接查看文章末尾。截图的功能我们应该都经常使用&#xff0c;在开发软件时&#xff0c;我们有时也或多或少需要提供这方面的功能&#xff0c;无论是为用户更方便提供远程诊…

K8S集群Master高可用实践

本文将在前文基础上介绍k8s集群的高可用实践&#xff0c;一般来讲&#xff0c;k8s集群高可用主要包含以下几个内容&#xff1a;1、etcd集群高可用2、集群dns服务高可用3、kube-apiserver、kube-controller-manager、kube-scheduler等master组件的高可用 其中etcd实现的办法较为…

[转载]智能科普:VR、AR、MR的区别

智能科普&#xff1a;VR、AR、MR的区别 http://news.zol.com.cn/553/5534833.html news.zol.com.cn 2015-11-23 16:00近日&#xff0c; 获得谷歌5亿美元融资的技术公司Magic Leap在WSJD展会中放出了一段实录视频&#xff0c;引起不小骚动。如今&#xff0c;也有媒体称他们为MR公…

PHP项目中,记录错误日志

一、场景介绍&#xff1a; 环境&#xff1a;LNMP 我们通常是通过nginx的错误日志来分析分错的&#xff0c;也就是我们在各个server中定义的error_log。 比如下面这样&#xff0c;就是将错误日志定义在/etc/nginx/logs/error/www.xiaobudiu.top.log&#xff0c;发生错误&#xf…