| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
默默粘一发AC代码#include<iostream>
#include<vector>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
#define int long long
inline int nextInt(void){
int res=0;char ch=getchar();
while(ch<'0'||ch>'9')ch=getchar();
while(ch<='9'&&ch>='0')res=res*10+ch-'0',ch=getchar();
return res;
}
const int N=5005,ONE=1;
vector<int> G[N];
int n,m,a[N],b[N],ans;
signed main(void){
n=nextInt();m=nextInt();
for(int i=1,x,y;i<=m;i++){
x=nextInt();y=nextInt();
G[x].push_back(y);
G[y].push_back(x);
}
for(int i=1;i<=n;i++){
a[i]=max(a[i],ONE);
for(int j=0;j<G[i].size();j++)
if(G[i][j]>i)a[G[i][j]]+=a[i];
}
b[n]=ONE;
for(int i=n;i>=1;i--){
for(int j=0;j<G[i].size();j++)
if(G[i][j]<i)b[G[i][j]]+=b[i];
}
for(int i=1;i<=n;i++)
for(int j=0;j<G[i].size();j++)
if(i<G[i][j])ans=max(ans,a[i]*b[G[i][j]]);
cout<<ans<<endl;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator