JSOI2010滿漢全席(2 sat)

2022-08-04 01:30:22 字數 1923 閱讀 9918

滿漢全席是中國最豐盛的宴客菜餚,有許多種不同的材料透過滿族或是漢族的料理方式,呈現在數量繁多的菜色之中。由於菜色眾多而繁雜,只有極少數博學多聞技藝高超的廚師能夠做出滿漢全席,而能夠烹飪出經過專家認證的滿漢全席,也是中國廚師最大的榮譽之一。世界滿漢全席協會是由能夠料理滿漢全席的專家廚師們所組成,而他們之間還細分為許多不同等級的廚師。

為了招收新進的廚師進入世界滿漢全席協會,將於近日舉辦滿漢全席大賽,協會派遣許多會員當作評審員,為的就是要在參賽的廚師之中,找到滿漢料理界的明日之星。

大會的規則如下:每位參賽的選手可以得到n 種材料,選手可以自由選擇用滿式或是漢式料理將材料當成菜餚。

大會的評審制度是:共有m 位評審員分別把關。每一位評審員對於滿漢全席有各自獨特的見解,但基本見解是,要有兩樣菜色作為滿漢全席的標誌。如某評審認為,如果沒有漢式東坡肉跟滿式的涮羊肉鍋,就不能算是滿漢全席。但避免過於有主見的審核,大會規定乙個評審員除非是在認為必備的兩樣菜色都沒有做出來的狀況下,才能淘汰一位選手,否則不能淘汰一位參賽者。

換句話說,只要參賽者能在這兩種材料的做法中,其中乙個符合評審的喜好即可通過該評審的審查。如材料有豬肉,羊肉和牛肉時,有四位評審員的喜好如下表:

評審一 評審二 評審三 評審四 

滿式牛肉 滿式豬肉 漢式牛肉 漢式牛肉

漢式豬肉 滿式羊肉 漢式豬肉 滿式羊肉

如參賽者甲做出滿式豬肉,滿式羊肉和滿式牛肉料理,他將無法滿足評審三的要求,無法通過評審。而參賽者乙做出漢式豬肉,滿式羊肉和滿式牛肉料理,就可以滿足所有評審的要求。

但大會後來發現,在這樣的制度下如果材料選擇跟派出的評審員沒有特別安排好的話,所有的參賽者最多只能通過部分評審員的審查而不是全部,所以可能會發生沒有人通過考核的情形。

如有四個評審員喜好如下表時,則不論參賽者採取什麼樣的做法,都不可能通過所有評審的考核:

評審一 評審二 評審三 評審四 

滿式羊肉 滿式豬肉 漢式羊肉 漢式羊肉

漢式豬肉 滿式羊肉 漢式豬肉 滿式豬肉

所以大會希望有人能寫乙個程式來判斷,所選出的m 位評審,會不會發生 沒有人能通過考核的窘境,以便協會組織合適的評審團。

很顯然對於每乙個評審的要求,如果其中乙個未滿足,則另乙個必須滿足,否則就過不了評審。因此這是乙個2-sat問題,解法也很顯然

首先設點i表示第i種食材的滿式做法,n+i表示第i種食材的漢式做法,然後建邊時把第乙個食材不符合要求的做法連向第二個食材符合要求的做法,第二個食材不符合要求的做法連向第乙個食材符合要求的做法(表明當第乙個不滿足時第二個必須滿足,第二個不滿足時第乙個必須滿足)。然後再用tarjan求強連通分量,乙個強連通量內的點是菜必須同時滿足的要求。而當乙個強連通分量內出現了乙個食材既是漢式又是滿式時就會出現衝突(乙個食材不能同時漢式又滿式的做),這時不管廚師怎麼做都會被其中乙個評委淘汰,因此這時輸出bad即可,反之就輸出「good」。

下面是**:

#include using namespace std;

const int n = 1e2+5;

int k, n, m, ans, cnt, it,

low[n<<1], dfn[n<<1],

scc[n<<1], is[n<<1];

vectorg[n<<2];

stacks;

inline int read()

while (ch >= '0' && ch <= '9')

return x*t;

}//求強連通分量

void tarjan(int u) if (dfn[u] == low[u]) while (t != u); }}

bool solve()

int main() if (solve()) cout << "good" << endl;

else cout << "bad" << endl;

} return 0;

}

JSOI2010 滿漢全席

time limit 10 sec memory limit 64 mb submit status discuss 滿漢全席是中國最豐盛的宴客菜餚,有許多種 同的材 透過滿族或是漢族的 方式,呈現在 繁多的菜色之中。由於菜色眾多而繁雜,只有極少 博學多聞技藝高超的廚師能夠做出滿漢全席,而能夠烹飪出...

JSOI2010 滿漢全席

洛谷 p4171 傳送門 bzoj1823 傳送門 2 sat裸題。簡單講一下2 sat 首先把題目給出的種種限制轉換為乙個圖。以這道題來說,每種菜看作是兩個點,乙個點代表做成漢式,另乙個代表做成滿式。然後考慮約束條件 比如 評委要求a做成漢式,b做成滿式。那麼如果a做成滿式,b就一定是滿式 同理,...

JSOI2010 滿漢全席 2 SAT

傳送門 題目鏈結 滿漢全席 題目描述 滿漢全席是中國最豐盛的宴客菜餚,有許多種 同的材 透過滿族或是漢族的 方式,呈現在 繁多的菜色之中。由於菜色眾多而繁雜,只有極少 博學多聞技藝高超的廚師能夠做出滿漢全席,而能夠烹飪出經過專家認證的滿漢全席,也是中國廚師最大的榮譽之一。世界滿漢全席協會是由能夠 滿...