題意就是問能否將給定的幾個單詞全部連線起來,兩個單詞能連線是當前乙個單詞的最後乙個字母等於後乙個單詞的首字母。還有一些單詞反向也沒有關係。
建圖,每輸入乙個單詞,只看他的首尾字母,連線一條首字母到尾字母的有向邊,如果他可以反向,那麼再反向建立一條邊,即該邊是無向邊。然後就是乙個混合尤拉了。
還有乙個注意的地方,就是可能是尤拉道路,這時只要在新增一條邊連線兩個奇度節點就好。
#include #include #include #include using namespace std;
#define inf 100000
const int maxn=100;
int n,m;
int p[50],in[50],out[50];
int level[maxn],que[maxn];
int head[maxn],lon;
int min(int a,int b)
int flow=maxflow(s,t);
for(i=head[s];i!=-1;i=e[i].next)
if(flag)printf("case %d: well done!\n",sum);
else printf("case %d: poor boy!\n",sum);
}return 0;
}
hdu 3472 HS BDC 混合路的尤拉路徑
這題是混合路的尤拉路徑問題。1.判斷圖的連通性,若不連通,無解。2.給無向邊任意定向,計算每個結點入度和出度之差deg i deg i 為奇數的結點個數只能是0個或2個,否則肯定無解。3.若存在2個deg i 為奇數的結點,則在兩點連一條流量為1的邊,方向任意 設立源點s和匯點t 自己另外定兩個點 ...
混合尤拉 HDOJ 3472 HS BDC
題意 詞語接龍,給出 n個詞語,一些詞語可以反轉,問是否存在尤拉路徑。先判定圖是否連通,再判斷是否存在尤拉路徑 尤拉路徑的條件 滿足尤拉迴路或只存在兩個點為奇數。然後建圖 令 c 出度 入度 2,若出度大於入度,連邊s,i容量為 c,反之連i,t容量為c。若求尤拉路徑,設兩個奇數的點為 k1,k2 ...
HDU 4002 尤拉函式
比較水的數論題,自己想出來的,就寫了個題解 題意是求 2到n之間 n phi n 為最大值時的n 設 n p1 r1 p2 r2 p3 r3 pk rk 則 phi n n 1 1 p1 1 1 p2 1 1 pk 即求 phi n n 為最小時的n phi n n 1 1 p1 1 1 p2 1 ...