這是一題典型的並查集的題。之前自己在做的時候是參考了網上的**的,雖然是看懂了,不過感覺參考的並不是自己的。這次複習,就自己敲了一下,開始也沒ac,因為在查詢函式這裡出了一點問題,後來再看書,然後自己模擬了一下,差不多知道錯在哪兒了,改了一下,就ac了。雖然沒有用到路徑壓縮什麼的最優方法,不過總算是懂了並查集是怎麼回事。
#include #include #include using namespace std;
int u[1005];
void ufinit(int n)
int uffind(int e)
return j;
}void ufunion(int i,int j)
int main()
for(int i=1;i<=n;i++)
printf("%d\n",cnt-1);
return 0;
}
看了大神的優秀**,優化了演算法,先貼上**,然後自己多敲幾遍
#include#includetypedef struct ufset *ufset;
typedef struct ufsetufs;
ufset ufinit(int size);
int uffind(int e,ufset u);
void ufunion(int i,int j,ufset u);
int main()
for (i = 1;i <= n;i++)
if (u->parent[i] == i)j++;
printf("%d\n",j);
return 0;
}ufset ufinit(int size)
int uffind(int e,ufset u)
return j;
}void ufunion(int i,int j,ufset u)
第十次作業
linux網路服務 osi七層模型 物理層 傳輸介質,組網 資料鏈路層 mac位址定址,資料成幀,資料檢測,重發apr 網路層 將網路位址轉化為實體地址,網路位址定址,路由 ip協議 傳輸層 提供端對端的資料交換,連線,埠 會話層 提供點對點的連線 表示層 資料格式化 應用層 應用程式,服務 tcp...
第十次作業
1.將以下文法消除左遞迴,分析符號串 i i i e e t t t t f f f e i 解 文法改寫 e te e te t ft t ft f e i first集 first e first e first t first t first f follow集 follow e follow...
第十次作業
1,簡述string類中的equals方法與object類中的equals方法的不同點。i string類的equals方法比較的是內容,object類中的equals方法比較的是記憶體位址 2,編寫程式,scanner 當以年 月 日的格式輸入乙個日期時,輸出其該年是否為閏年,該月有幾天,該日是星...