題目大意:
思路:先用floyed求出乙個人最終可以想誰借到光碟,再利用乙個很類似並查集的東西求出答案
**:
#include
#include
using
namespace
std;
int father[201],a[201][201],n,x,sum;
int main()
}for (int k=1;k<=n;k++)
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++) //floyed
if (a[i][k]==1&&a[k][j]==1) a[i][j]=1;
for (int i=1;i<=n;i++)
father[i]=i; //並查集初始化
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (a[i][j]==1) father[j]=father[i]; //如果i肯把光碟給j,那麼j的父節點就是i的父節點(i)
for (int i=1;i<=n;i++)
if (father[i]==i) sum++; //記錄有幾個人的父節點是自己(即必須給光碟的人)
printf("%d\n",sum);
return
0;}
SSL ZYC 2344 燒錄光碟
題目大意 思路 先用floyed求出乙個人最終可以想誰借到光碟,再利用乙個很類似並查集的東西求出答案 include include using namespace std int father 201 a 201 201 n,x,sum int main for int k 1 k n k for...
SSL 2344 燒錄光碟
n n 個人,每個人都可以把資料拷貝給另乙個人,但每個人只願意拷給他想拷給的人,問需要幾份資料。n role presentation style position relative n n 200一開始想用並查集,但並查集是雙向的,而這題是單向的,所以先跑遍floyed,查詢所有願意拷貝的人,在一...
1383 燒錄光碟 cdrom
在fjoi2010夏令營快要結束的時候,很多營員提出來要把整個夏令營期間的資料燒錄成一張光碟給大家,以便大家回去後繼續學習。組委會覺得這個主意不錯!可是組委會一時沒有足夠的空光碟,沒法保證每個人都能拿到燒錄上資料的光碟,怎麼辦呢?dyj分析了一下所有營員的地域關係,發現有些營員是乙個城市的,其實他們...