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