1. 程式人生 > >【圖論專題三】 【NOI2016模擬6.20】沒有強聯通分量的無聊世界

【圖論專題三】 【NOI2016模擬6.20】沒有強聯通分量的無聊世界

【NOI2016模擬6.20】沒有強聯通分量的無聊世界

Description

在這裡插入圖片描述
Input
在這裡插入圖片描述

Output

在這裡插入圖片描述
Sample Input
3 4
1 2
1 3
2 3
3 1

Sample Output
1

Data Constraint
在這裡插入圖片描述

題解

可以將它拓撲出來,然後然後~~
就沒有然後了
所以,我們要換一種思路。
注意 性質 DAG的性質是:一個點的拓撲序只會向比它編號大連邊。 所以我們只需要求出一個編號的順序,然後可以計算代價。這就是基本思路。

第一種方法

我們可以全排列順序,然後貪心計算代價(應該很簡單吧)。取最小值就好了。
預計分數:20分

第二種方法

我們可以狀態壓縮全排列選擇的編號。因為編號的順序與加入一個編號的答案不產生影響,所以自然可行
預計分數:60分。

第三種方法

對第二種方法進行優化,用位運算、預處理等加速演算法二。
預計分數:100分

程式碼

第二種方法

#include<cstdio>
#include<cstring>
#define N 23
#define M 485
#define MAX_f 4194305
using namespace std;
int n,m,total1;
int th2[N],next[M],head[M],edge[M],f[MAX_f]
; bool used[MAX_f]; void insert(int x,int y) { total1++; next[total1]=head[x]; head[x]=total1; edge[total1]=y; } int main() { freopen("dizzycows.in","r",stdin); freopen("dizzycows.out","w",stdout); scanf("%d%d",&n,&m); th2[0]=1; for (int i=1;i<=n;i++) { th2[i]=th2[i-1]*2; } for
(int i=1;i<=m;i++) { int x,y; scanf("%d%d\n",&x,&y); insert(x,y); } f[0]=0; for (int i=1;i<=th2[n];i++) { f[i]=-999999; } memset(used,false,sizeof(used)); for (int i=0;i<=n-1;i++) { for (int j=0;j<=th2[n];j++) { if (f[j]>=0&&used[j]==false) { used[j]=true; for (int k=1;k<=n;k++) { if ((j&th2[k-1])==0) { int p=j|th2[k-1]; int cost=0; for (int i1=head[k];i1;i1=next[i1]) { int y=edge[i1]; if ((j&th2[y-1])!=0) cost++; } if

相關推薦

專題 NOI2016模擬6.20沒有聯通分量無聊世界

【NOI2016模擬6.20】沒有強聯通分量的無聊世界 Description Input Output Sample Input 3 4 1 2 1 3 2 3 3 1 Sample Output 1 Data Constraint 題解 可以將

解題報告專題

圖論 克魯斯卡爾 scan 克魯斯卡爾算法 href display ref 排序 span 圖論500題http://blog.csdn.net/luomingjun12315/article/details/47438607 【最小生成樹+並查集】 1、hdu 1856

專題JSOI2013吃貨JYY

【江蘇省省選2013】吃貨JYY 【JSOI2013】吃貨JYY (Standard IO) Time Limits: 1000 ms Memory Limits: 131072 KB Detailed Limits Description 世界上一共有N個JYY願意去的城市,分

專題網路流部分狼和羊的故事

【浙江省省選2009】狼和羊的故事 題目 【ZJOI2009】狼和羊的故事 (Standard IO) Time Limits: 1000 ms Memory Limits: 256000 KB Detailed Limits Description   “狼愛上羊啊愛的瘋狂

專題假期計劃

【GDOI2015模擬11.22】假期計劃 題目 【GDOI2015模擬11.22】假期計劃 (Standard IO) Time Limits: 500 ms Memory Limits: 262144 KB Detailed Limits Description 航空公司

2018國慶校聯考D5T2

分析: 題意非常醜陋。。。簡化出來就一句話:每個點有選中、未選中兩種狀態,現在給出一些矛盾關係,要求加入儘可能少的矛盾關係,使得沒有合法方案。 如此2sat的模型,顯然需要2sat的連邊方式。。。然後直接列舉每個位置選、不選是否合法即可。若不選合法,則考慮其練的邊是否有一個

DFS校聯考10.20T2

題意 尋找有多少條邊滿足:圖中所有奇環都包含這條邊,且這條邊不屬於任何偶環 分析: 最後一個性質好坑。。。一直在想那個性質結果T3都沒來得及做… 直接建一個DFS樹。因為是無向圖,所以只存在樹邊和返祖

POJ 2387 之最短路種寫法

最短路問題; 坑點1:是先輸入邊,再輸入點; 坑點2:資料很大,不適合用別的模板; 坑點3:有重邊 需要判定; 題意:題目大意:有N個點,給出從a點到b點的距離,當然a和b是互相可以抵達的,問從1到n

網絡流總結

hdu 3338 -m ini post 平衡 題目 esp urn data- 【圖論】網絡流總結 最大流部分 網絡流題目的關鍵:看出是網絡流而且確定正確的模型 最大流算法:用來解決從源點s到匯點t,整個網絡最多能輸送多少流量的題目 模

最優貿易

價格 highlight style 不同 相同 -s 存在 n) size [NOIP2009]最優貿易 描述   C 國有 n 個大城市和 m 條道路,每條道路連接這 n 個城市中的某兩個城市。任意兩個城市之間最多只有一條道路直接相連。這 m 條道路中有一部分為單向

Self-Assembly(6-19)

inline const 分析 i++ 不能 hash unbound tac 正方形 [UVA1572]Self-Assembly 算法入門經典第6章6-19(P172) 題目大意:有一些正方形,每條邊上都有A-~Z- A+~Z+的編號,或者00,A+的邊可以拼A-,

tarjan

AS code 更新 out 聯通 ace 起點 是什麽 環路 剛接觸tarjan,tarjan其實更多是用來找強聯通分量。我這裏呢,是看qsc的視頻學的。卿學姐講的其實很清楚啦。 我這裏只是做個整理。 low[]:表示能到達這個點的最小編號。[樹枝邊]。啊,其實

-最短路P3393逃離僵屍島

hint eight pro urn ref wid rip tin #define 傳送門 Description 小a住的國家被僵屍侵略了!小a打算逃離到該國唯一的國際空港逃出這個國家。 該國有N個城市,城市之間有道路相連。一共有M條雙向道路。保證沒有自環和重邊。

搜索bzoj1064: [Noi2008]假面舞會

des info tput 自己的 根據 比賽 u+ str src 做到最後發現還是讀題比賽 Description 一年一度的假面舞會又開始了,棟棟也興致勃勃的參加了今年的舞會。今年的面具都是主辦方特別定制的。每個參加舞會的人都可以在入場時選擇一 個自己

割點

百度百科 sum 所有 baidu tdi ++ define show .com 百度百科 Definition&Solution   在一個無向聯通圖中,如果刪除一個點,該圖變得不連通,那麽該點稱作該圖的割點。註意,割點可能不止一個。   對於無向不連通圖

8月19日前填坑指南(自用)

自用 排列 歐拉回路 深度優先 獨立 perf 最小 前向星 最短路 Graph 圖論 前向星 圖的割點、橋 雙連通分量 有向圖的強連通分量 無向圖連通分支 拓撲排序 2-SAT 最短路 第K短路 哈密頓路、歐拉路徑、歐拉回路 DAG的深度優先搜索標記 獨立集、團、支配集

hiho14 無間道之並查集--並查集

const lse string turn problem scan -c for sca 傳送門:無間道之並查集 分析 並查集的分析可以看上面的傳送門,寫的挺好的了。 其實在我看來並查集就是一種方便的維護集合的一種技巧,提出了代表元素這一概念。 My AC Code #i

[JZOJ5899]NOIP2018模擬10.6資源運輸矩陣樹定理

Description 給定一個n個點,m條邊的帶權無向圖。 定義這個圖的一個生成樹的權值為生成樹上邊權的乘積。 求所有生成樹權值的平均值,答案對998244353取模。 2<=n<=300,n-1<=m<=1000 Solution 平均值=和/總數

codefroces 1037 E Trips逆向思維度大於等於k的最大子

【連結】 【題意】 有n個人,一開始都不是朋友,m天每天都會有x,y成為朋友,現在他們有trip,只有他們出去玩的朋友數大於等於k才能出去,求每天出去最多的人數。朋友關係不具有傳遞性 【思路】 用set維護圖,並記錄與點相連的邊集。如果圖從無到有建邊,那麼每加入一

思維題AGC004F Namori

分析: 比較複雜的一道思維題。。。 先考慮樹的情況,把所有點按照深度的奇偶性分為兩類,在所有深度為奇的點放一個“+1”,在所有深度為偶的點放一個“-1”。這樣一來,每次染色,就可以看作交換了一對相鄰的“+1”和“-1”。目標狀態就是所有的“+1”移動到“-1”所