問題描述
bqc經過一段時間的研究發現,要解這種毒需要一種特殊的藥物。不幸的是,這種藥物在 市面上不存在,沒有辦法bqc只好親自制得這種藥物。它含有m種化學物質a1,a2,…,am。現 在bqc的手上有n種藥材(每種藥材只有一種),每種藥材含有若干種化學物質(bqc他有一種 機器,只要將藥材放入機器,就能制得相應的藥物)。
bqc需要你的幫助,他希望你能幫他選取若干種藥材,用這些選取的藥材製作出bqc需要 的藥物。由於這些化學物質是有毒的,因此你選出來的藥物,必須含有這m種化學物質。 有一點需要注意:根據中醫以毒攻毒的理論,兩個相同的化學物質在一起,它們的藥性會 同時消失變為一種無毒物質(大多情況下這種無毒物質會揮發掉,也就是說這種化學物質消 失了)。比如說藥材1有化學物質1、2,藥材2有化學物質1、3,那麼如果藥材1和藥材2混合, 你得到的藥物會含有化學物質2、3。 bqc問你,需要選用那些藥材可以制得他想要的藥物?
輸入格式
本題每個測試點存在多組資料,每組輸入資料第1行包含兩個整數n和m,表示bqc擁有的 藥材數目和他所需藥物所含的化學物質的種類數目;
第2行共有m個整數,分別表示m中化學物質的編號,用1~50之間的數字編號(輸入資料保 證同一種化學物質不會被描述多次);
第3行到第n+2行,每行包含若干個數。第i+2行的第乙個數為mi,表示藥材i包含mi中化 學物質,接下來mi個數,描述藥材i含有的化學物質的編號,用1~50之間的數字編號(同一種 化學物質可能會被描述多次)。 每組輸入資料用乙個空行隔開。
輸出格式
對於每組資料輸出一行,如果用這些藥材可以制得bqc需要的藥物,那麼輸出「possible」; 否則輸出「impossible」,不包含引號。
樣例輸入
2 22 3
2 1 5
2 1 3
3 31 3 4
4 2 3 4 1
1 42 2 1
4 41 2 3 4
3 1 3 4
3 1 4 5
1 22 2 3
樣例輸出
impossible
possible
possible
其實吧,這道題我把它畫成圖,我還以為可以用二分圖匹配做,後來發現tan90°,然後就只有用狀壓了,畢竟這個選到指定種類的題很容易想到用二進位制表示狀態
然後就是乙個暴力搜尋了,原本是打著死馬當活馬醫的態度做這題,結果竟然還一次就a了
【思路】
陣列f[i]表示第i個數含有哪些物質(二進位制表示),然後暴力搜尋;
有個叫大公尺兔的大佬還提出了更強的解法,就是用線性基,優化了很多啊
1 #include2 #include3 #include4 #include5 #include6 #include7view code#define maxn 55
8#define ll long long
9using
namespace
std;
1011
ll f[maxn];
12ll goal,n,m;
13int vis[maxn],y[maxn],tr=0;14
15int
read()
18while(ch>='
0'&&ch<='9')
19return xx*ff;20}
2122
void dfs(int
pos,ll now)
25if(pos==n+1)return;26
if(!vis[pos])
29if(tr==1)return
;30 dfs(pos+1
,now);31}
3233
intmain()
44for(int i=1;i<=n;i++)
50 }dfs(1,0
);51
if(!tr)printf("
impossible\n");
52}53 }
我dfs打的醜不要笑,主要是習慣了以dep為引數的dfs,這次以pos的還有點不熟悉qaq
NOIP模擬 修路
這題第一眼看上去有些懵逼,還以為是dp。第二眼,哦,這麼裸的最小生成樹,2分鐘打完,拍都沒對,自信100分。最終100分。每條邊的權值減去連個節點的權值,所有的邊做一次最小生成樹就好了。include include include include include define fo i,a,b f...
NOIP模擬 項鍊
經過一番周折,bob找到了alice,為了安慰alice驚魂未定的心,bob決定給alice買一條手鍊,這條手鍊由m個珍珠組成,每個珍珠上刻著不同的小寫字母。當alice看到一些字母按照一定的順序排列成的字串時,就會產生一定的愉悅值。bob現在可以在這m個珍珠上刻上字母,現在他想知道,如何刻字母可以...
NOIP模擬 幻象
phantom是一位愛思考的哲 學家。最近phantom得到了森 妖精的真傳。在他練功的時候,每秒他的思緒中都有一定的概率浮現出奇 異的幻象,持續x秒的幻象將產生 空格 的幻象值。phantom練功發自真心,他想知道,在n秒內他期望產生的幻象值是多少。等我比賽完之後,我們才知道 空格 是x2 所以比...