hdu 4739 Zhuge Liang's Mines 搜索

#include<bits/stdc++.h>
using namespace std;

struct node
{
    int x,y;
} a[25];
struct data
{
    int a1,a2,a3,a4;
} d[200];

int cnt,n,ans,b[25],use[25];

int cmp(node n1,node n2)
{
    if(n1.x==n2.x) return n1.y<n2.y;
    else return n1.x<n2.x;
}

double dis(int n1,int n2)
{
    return (a[n1].x-a[n2].x)*(a[n1].x-a[n2].x)+(a[n1].y-a[n2].y)*(a[n1].y-a[n2].y);
}

int check(int z,int x,int c,int v)
{
    if(a[z].x!=a[x].x||a[c].x!=a[v].x) return 0;
    double t1,t2,t3,t4;
    t1=dis(z,x);
    t2=dis(z,c);
    t3=dis(z,v);
    if(t2>t1) swap(t1,t2);
    if(t3>t1) swap(t1,t3);
    if(t1!=t2+t3||t2!=t3) return 0;

    t1=dis(x,c);
    t2=dis(x,z);
    t3=dis(x,v);
    if(t2>t1) swap(t1,t2);
    if(t3>t1) swap(t1,t3);
    if(t1!=t2+t3||t2!=t3) return 0;
    return 1;
}

void dfs(int now,int t)
{
    if(t>ans) ans=t;
    if(now==cnt)
        return ;
    if(use[d[now].a1]==0&&use[d[now].a2]==0&&use[d[now].a3]==0&&use[d[now].a4]==0)
    {
        use[d[now].a1]=1;
        use[d[now].a2]=1;
        use[d[now].a3]=1;
        use[d[now].a4]=1;
        dfs(now+1,t+4);
        use[d[now].a1]=0;
        use[d[now].a2]=0;
        use[d[now].a3]=0;
        use[d[now].a4]=0;
    }
    dfs(now+1,t);
}
int main()
{
    int i;
    while(~scanf("%d",&n))
    {
        if(n==-1) break;
        for(i=0; i<n; i++)
            scanf("%d%d",&a[i].x,&a[i].y);

        if(n<=3)
        {
            printf("0\n");
            continue;
        }
        cnt=0;
        memset(use,0,sizeof(use));
        sort(a,a+n,cmp);
        for(int a1=0; a1<n; a1++)
            for(int a2=a1+1; a2<n; a2++)
                for(int a3=a2+1; a3<n; a3++)
                    for(int a4=a3+1; a4<n; a4++)
                    {
                        if(check(a1,a2,a3,a4)==1)
                        {
                            d[cnt].a1=a1;
                            d[cnt].a2=a2;
                            d[cnt].a3=a3;
                            d[cnt].a4=a4;
                            cnt++;
                        }
                    }
        ans=0;
        if(cnt!=0) dfs(0,0);
        printf("%d\n",ans);
    }
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值