n n
個人,每個人都可以把資料拷貝給另乙個人,但每個人只願意拷給他想拷給的人,問需要幾份資料。
n<=
' role="presentation" style="position: relative;">n
<=
n<=
200一開始想用並查集,但並查集是雙向的,而這題是單向的,所以先跑遍floyed,查詢所有願意拷貝的人,在一邊單向並查集,求出最後祖先是自己的個數
#include
#include
#define r(i,a,b) for(int i=a;i<=b;i++)
using
namespace
std;
int n,a,ans,f[201];
bool l[201][201];
int main()
r(k,1,n)
r(i,1,n)
r(j,1,n)
if(i!=j)
l[i][j]=l[i][j]||(l[i][k]&&l[k][j]);//一遍floyed
r(i,1,n) r(j,1,n) if(l[i][j]) f[j]=f[i];//賦值祖先
r(i,1,n) if(f[i]==i) ans++;//統計,輸出
printf("%d",ans);
}
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 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...
1383 燒錄光碟 cdrom
在fjoi2010夏令營快要結束的時候,很多營員提出來要把整個夏令營期間的資料燒錄成一張光碟給大家,以便大家回去後繼續學習。組委會覺得這個主意不錯!可是組委會一時沒有足夠的空光碟,沒法保證每個人都能拿到燒錄上資料的光碟,怎麼辦呢?dyj分析了一下所有營員的地域關係,發現有些營員是乙個城市的,其實他們...