JOJ 2727 GRE(混合尤拉路)

2021-05-26 21:37:26 字數 2376 閱讀 5586

演算法基本和sightseeing tour一樣,但是要注意判斷圖的連通性,而且要放寬判斷條件,存在2個度為奇的點時,則要新增一條邊構成迴路

普通ek演算法

#include #include #include #include #include #define min(a,b) ((a)>(b))?(b):(a)

using namespace std ;

const int maxn=30;

const int inf=0x7fffffff;

int cap[maxn][maxn],flow[maxn][maxn],p[maxn],minflow[maxn],q[maxn];

int deg[maxn];

int n,m,junc;

int i=0;

bool vis[maxn];

int maxflow(int s , int t)}}

//printf("mint=%d\n",minflow[t]);

if(!minflow[t])break;

for (u=t ; u!=s ; u=p[u])

f+=minflow[t];

}return f;

}int find (int x)

void merge (int a , int b)

}int main ()

//printf("u=%d v=%d \n",u,v);

}bool flag=true;

for (i=0 ; i<26 ; ++i)

if(vis[i])point++;

if(point!=junc)flag=false;

int odd_d=0,start=28,end=28;

for (i=0 ; i<26 ; ++i)

if(odd_d>2)flag=false;

if(!flag)break;

}if(flag)

int ans=maxflow(s,t);

//printf("\n%d %d\n%d %d\n",ans,sum,start,end);

printf("%d %d\n",junc,point);

if(ans==sum)printf("case %d: well done!\n",++i);

else printf("case %d: poor boy!\n",++i);

}else printf("case %d: poor boy!\n",++i);

}return 0;

}

達哥的模板改進之後,跑了joj第一,嘿嘿

#include #include #define min(a,b) ((a)>(b))?(b):(a)

using namespace std ;

const int maxn=28;

const int inf=0x5fffffff;

int cap[maxn][maxn],dist[maxn],gap[maxn],fath[maxn];

int deg[maxn];

int n=27,m,junc;

int i=0;

const int source=0;//這個模板的匯點好像必須是0,一開始設成26怎麼都調不對

const int sink=27;

bool vis[maxn];

int dfs (int p , int limit=inf)}}

int tmp=n+1 ;

for (int i=0 ; i<=n ; ++i)

if(cap[p][i]>0)

tmp=min(tmp,dist[i]+1);

//printf("dist[p]=%d dist0=%d tmp=%d\n",dist[p],dist[0],tmp);

//printf("gap=");

//for (int i=0 ; in)return -1;//出現斷層或回流已滿

++gap[dist[p]=tmp];

return 0;

}int sap()

int find (int x)

void merge (int a , int b)

}int main ()

if(flag)

int ans=sap();

if(ans==sum)printf("case %d: well done!\n",++i);

else printf("case %d: poor boy!\n",++i);

}else printf("case %d: poor boy!\n",++i);

}return 0;

}

提高專案27 2解密

任務和 小麗請你寫乙個程式,在看小明的情書時,讓程式幫著 解密 因為有同學知道了他們倆人的 加密 手段,決定紙條由人傳,加密數字 1 9 用兩人約好的手勢傳,所以解密時,需要將加密數字作為程式輸入。例,輸入m pszi y 回車 4,輸出i love 檔名 main.c 完成日期 2016.7.7 ...

2 7 2 找鞍點 20 分

2 7 2 找鞍點 20 分 乙個矩陣元素的 鞍點 是指該位置上的元素值在該行上最大 在該列上最小。本題要求編寫程式,求乙個給定的n階方陣的鞍點。輸入格式 輸入第一行給出乙個正整數n 1 n 6 隨後n行,每行給出n個整數,其間以空格分隔。輸出格式 輸出在一行中按照 行下標 列下標 下標從0開始 的...

day27 2 單詞分析

問題描述 小藍正在學習一門神奇的語言,這門語言中的單詞都是由小寫英文本母組成,有些單詞很長,遠遠超過正常英文單詞的長度。小藍學了很長時間也記不住一些單詞,他準備不再完全記憶這些單詞,而是根據單詞中哪個字母出現得最多來分辨單詞。現在,請你幫助小藍,給了乙個單詞後,幫助他找到出現最多的字母和這個字母出現...