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.pswp.cn/news/282328.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/282328.shtml
英文地址,請注明出處:http://en.pswp.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…