您的位置:首页 > 大数据 > 人工智能

615B Longtail Hedgehog

2016-01-17 17:08 495 查看
//615B Longtail Hedgehog
//图上的dp,最大度*最大深
//问题多多,再次体验到了系统的disgusting
#include<bits/stdc++.h>
#define MAX_V 100005
using namespace std;
typedef long long ll;
vector<int> G[MAX_V];
vector<int>::iterator it;
ll dep[MAX_V];
int v, e, a, b;
ll ans;
int main()
{
scanf("%d %d", &v, &e);
for(int i=0; i<e; i++)
{
scanf("%d %d", &a, &b);
G[a].push_back(b);
G[b].push_back(a);
}
for(int i=1; i<=v; i++)
{
sort(G[i].begin(),G[i].end());
dep[i] = 1;
for(int k:G[i]) if(k<i) dep[i] = max(dep[i],dep[k]+1);
//      for(it=G[i].begin(); *it<i; it++) dep[i] = max(dep[i],dep[*it]+1);//用it会RE,orz
ans = max(ans,dep[i]*(int)G[i].size());//这边的乘法交换顺序时间变得更久,貌似表达式默认类型看最右边的值?
}
//  for(int i=1; i<=v; i++)
//  {
//      it=G[i].begin();
//      cout<<i<<" : ";
//      for(it=G[i].begin(); it!=G[i].end(); it++)
//      cout<<*it<<" ";
//      cout<<endl;
//  }
//  cout<<"度:"<<endl;
//  for(int i=1; i<=v; i++)
//  {
//      cout<<i<<" "<<G[i].size()<<endl;
//  }
//  cout<<"深:"<<endl;
//  for(int i=1; i<=v; i++)
//  {
//      cout<<i<<" "<<dep[i]<<endl;
//  }
printf("%I64d\n", ans);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: