題意:有n男n女,告訴其中乙個完備匹配,求其它所有的完備匹配
分析:對於乙個男生,如果還有別的可能,那麼肯定可以找到乙個環。但這圖怎麼構造就悲劇了,一直建了個錯圖,所以一直wa。後面還是看了別人的解題報告才。。。下面分別給出wa和ac的思想與**
//wa
//男生喜歡女生的建雙向邊,然後算邊連通分量,如果已匹配的邊的兩頂點不在同一邊連通分量中
//那麼只有這組關係,然後不斷刪邊,確定關係,刪邊。。。
/*下面的樣例相當於兩個環只有乙個公共頂點相連
43 1 2 3
3 1 2 3
2 3 4
2 3 4
1 2 3 4
*/#include#include#include#includeusing namespace std;
const int maxn=2200;
vectore[maxn],e1[maxn];
bool flag[maxn],inq[maxn];
int n,top,num,tnum,mat[maxn],q[maxn],dfn[maxn],low[maxn],cnt[maxn];
void tarjan(int t,int pt)
else if(inq[j]&&low[t]>dfn[j])
low[t]=dfn[j];
} if(low[t]==dfn[t])
while(q[top]!=t); }}
int main()
for(i=1;i<=n;i++)
else if(inq[j]&&low[t]>dfn[j])
low[t]=dfn[j];
} if(low[t]==dfn[t])
while(q[top]!=t); }}
int main()
for(i=1;i<=n;i++)
{ scanf("%d",&k);
for(j=0;j
求所有的水仙花數
我的程式 01.02.程式的版權和版本宣告部分 05.檔名稱 test.cpp 06.作 者 王魯峰 07.完成日期 2013 年11月9日 08.版 本 號 v1.0 09.對任務及求解方法的描述部分 10.輸入描述 無 11.問題描述 水仙花數即個位 十位 百位的三次方加和等於這個數本身 12....
對給定字串求所有的組合
輸入字串,輸出所有的組合,比如輸入abc,輸出 a b c ab ac bc abc。題目解法 abc用01串表示,001表示輸出c,111表示輸出abc,解法如下。空間複雜度n,時間複雜度為2 n 1,因為有這麼多種結果啊。package combination author administra...
求有多少個連續字串中所有的字母都出現了偶數次
給出乙個長度為 n 的字串 1 n 100000 求有多少個連續字串中所有的字母都出現了偶數次。這題的思路是這樣的,首先我們可以狀壓,每一位0代表該位代表字母的數量是偶數個,1則代表奇數個 那麼我們記錄乙個字首的狀態,如果後面有歐串,則一定可以異或之前出現過的字首得到全零的合法狀態,因此我們用map...