码迷,mamicode.com
首页 > 其他好文 > 详细

HDU 5277 YJC counts stars (二维平面图求最大团)

时间:2015-07-05 12:30:37      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:

题目链接:传送门

题意:

感觉这次读题特别重要啊“这些点满足任意三点不共线。他把一些点用线段连起来了,但是任意两条线段不会在端点以外相交”这是题目给的原话,但是比赛的时候一直没有用。。。然后就SB了,因为平面图两两相连而且不相交的点集最大就为4,那么就可以分别来考虑了。

首先考虑最大为4的情况,分别枚举两条边,如果这两条边没有公共点,而且顶点两两相连那么就是一个符合的。

如果最大为3的话,那么就可以枚举一条边,然后再枚举点就可以了。

如果最大为2,就输出边数。最大为1的话就输出点的个数。

代码如下:

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <cmath>
#include <set>
using namespace std;

const int maxn = 1010;

int head[maxn];

struct nod{
    int u,v;
}edge[maxn*maxn];

bool mp[maxn][maxn];

int main(){
    int n,m;
    while(~scanf("%d%d",&n,&m)){
        int x,y;
        for(int i=0;i<n;i++) scanf("%d%d",&x,&y);
        memset(mp,0,sizeof(mp));
        for(int i=0;i<m;i++){
            scanf("%d%d",&x,&y);
            edge[i].u=x;
            edge[i].v=y;
            mp[x][y]=1,mp[y][x]=1;
        }
        if(m==0){
            printf("1 %d\n",n);
            continue;
        }
        int sum=0;
        for(int i=0;i<m;i++){
            int u=edge[i].u,v=edge[i].v;
            for(int j=i+1;j<m;j++){
                int u1=edge[j].u,v1=edge[j].v;
                if(u1==u||v1==v||u1==v||v1==u) continue;
                if(mp[u1][v]&&mp[v1][u]&&mp[u][u1]&&mp[v][v1]) sum++;
            }
        }
        if(sum){
            printf("4 %d\n",sum/3);
            continue;
        }
        for(int i=0;i<m;i++){
            int u=edge[i].u,v=edge[i].v;
            for(int j= 1;j<=n;j++){
                if(j==v||j==u) continue;
                if(mp[u][j]&&mp[v][j]) sum++;
            }
        }
        if(sum){
            printf("3 %d\n",sum/3);
            continue;
        }
        else
            printf("2 %d\n",m);
    }
    return 0;
}


 

版权声明:本文为博主原创文章,未经博主允许不得转载。

HDU 5277 YJC counts stars (二维平面图求最大团)

标签:

原文地址:http://blog.csdn.net/bigbigship/article/details/46761899

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!