有n個人,編號為1,2,……n,另外還知道存在k個關係。乙個關係的表達為二元組(α,β)形式,表示α,β為同一家庭的成員。
當n,k和k個關係給出之後,求出其中共有多少個家庭、最大的家庭中有多少人?
例如:n=6,k=3,三個關係為(1,2),(1,3),(4,5)
此時,6個人組成三個家庭,即:{1,2,3}為乙個家庭,{4,5}為乙個家庭,{6}單獨為乙個家庭,第乙個家庭的人數為最多。
第一行為n,k二個整數(1≤n≤100)(用空格分隔);
接下來的k行,每行二個整數(用空格分隔)表示關係。
二個整數(分別表示家庭個數和最大家庭人數)。
6 31 2
1 3
4 5
3 3
暴力列舉:(差乙個點,過不了,不知道**錯了)
#include #define sf(a) scanf("%d\n",&a)
#define pf(a) printf("%.2lf\n",a)
#define pi acos(-1.0)
#define e 1e-8
#define ms(a) memset(a,0,sizeof a)
#define rep(a,b,c) for(int a=b;a<=c;a++)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int inf=0x3f3f3f3f;
const int idata=100000+5;
int i,j,k;
int judge,flag;
//int step[idata];
//int dp[idata];
int n,m,t,ans;
int maxx=0,minn=inf;
int cnt,len,sum;
string s[idata];
vectorvec[100+5];
int tail=1,head=0;
int main()
sort(rela+1,rela+1+k);
vec[1].push_back(1);
a[1]=0;
cnt=1;
for(i=1;i<=k;i++)
else if(it==vec[j].end()&&itt!=vec[j].end())
else if(it==vec[j].end()&&itt==vec[j].end())}}
for(i=1;i<=cnt;i++)
for(i=1;i<=n;i++)
if(a[i]) cnt++;
cout《並查集:
#include #include #include #include #include #include #include #include #include #include #include #define sf(a) scanf("%d\n",&a)
#define pf(a) printf("%.2lf\n",a)
#define pi acos(-1.0)
#define e 1e-8
#define ms(a) memset(a,0,sizeof a)
#define rep(a,b,c) for(int a=b;a<=c;a++)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int inf=0x3f3f3f3f;
const int idata=1e6+5;
int i,j,k;
int judge,flag;
int n,m,t,ans;
int maxx=0,minn=inf;
int cnt,len,sum;
//int dp[idata][idata];
priority_queue,less>q;
char *ch;
int p[idata];
int fa[idata];
int find(int son)
void union(int x,int y)
int main()
ms(p);
cnt=0,maxx=0;
for(i=1;i<=n;i++) p[find(i)]++;
for(i=1;i<=n;i++)
cout<}
return 0;
}
1362 家庭問題 family
1 include2 using namespace std 3int n,k 按要求輸入 4int a,b 按要求輸入 5int rel 105 105 用於儲存各個成員之間的關係 6int vis 105 記錄是否被訪問過 7int que 10010 定義佇列 8int f,r 定義隊首隊尾 ...
AT1251 家庭菜園
注意!1 h 和 h n 是可以有等於 h i 的,翻譯錯了 洛谷傳送門 at傳送門 為什麼會有兩個 考慮最後能夠獲得收入的位置,這些位置構成乙個先上公升再下降的序列。那麼我們可以列舉那個最高點,然後算出這個點左邊遞增的最大收入和右邊遞減的最大收入。那麼只考慮左邊,右邊同理即可。我們設 f i 表示...
PTA L2 家庭房產 並查集
題目描述 給定每個人的家庭成員和其自己名下的房產,請你統計出每個家庭的人口數 人均房產面積及房產套數 ac include include include using namespace std const int n 1e5 55 int pre n vis n tig n struct node...