HNOI2015 BZOJ4010 菜餚製作

2021-07-07 11:00:12 字數 770 閱讀 6853

description

知名美食家小 a被邀請至atm 大酒店,為其品評菜餚。

atm 酒店為小 a 準備了 n 道菜餚,酒店按照為菜餚預估的質量從高到低給予

1到n的順序編號,預估質量最高的菜餚編號為1。由於菜餚之間口味搭配的問題,

某些菜餚必須在另一些菜餚之前製作,具體的,一共有 m 條形如「i 號菜餚『必須』

先於 j 號菜餚製作」的限制,我們將這樣的限制簡寫為

#include

#include

#include

#include

#include

#include

#define maxn 100010

#define get (ch>='0'&&ch<='9')

using

namespace

std;

int t,n,m,top;

int in[maxn];

int sta[maxn],tp;

void in(int &x)

struct edge

e[maxn],*prev[maxn];

priority_queue heap;

void insert(int u,int v)

int main()

if (tp!=n)

for (int i=tp;i;i--) printf("%d ",sta[i]);puts("");

}}

bzoj4010 HNOI2015 菜餚製作

題目鏈結 題意 給出一張無向圖要求出乙個拓撲序列滿足1的位置最靠前 在保證上面的條件下使2的位置最靠前 在保證上面的條件下使3的位置最靠前 solution 構造逆拓撲序,套個堆每次選出編號最大的加入答案,輸出答案時從後往前輸出。有點難想,但是腦補一下還是ok的。bzoj4010 include i...

BZOJ4013 HNOI2015 實驗比較

先並查集合並 因為所有的xi互不相同,所以合併完後應該是乙個森林,如果出現環就無解。我們新建乙個根連向所有入度為0的點,就變成了一棵樹,考慮樹形dp。因為只要兩點不是其中一點是另一點的祖先的關係,他們就可以劃 因為大小關係不確定,所以將 連線的看做一塊,f i j 表示以 i 為根的子樹分成了j塊 ...

bzoj4010 HNOI2015 菜餚製作

給定n個點,m條邊的有向圖。求乙個排列p使對於所有x y有p x p y 且序號小的值盡量靠前 乍一看是求字典序最小的拓撲序列 其實並不是。可能是我太鶸了,其他dalao就不這麼覺得 orzw yqts 這裡有乙個反例.請不要吐槽為什麼這麼醜 所以只要較大的值盡量靠後.教小的值自然就靠前了.所以就倒...