zoukankan      html  css  js  c++  java
  • hdu 1270 小希的数表

    思路:一定有sum[1]=num[1]+num[2],sum[2]=num[1]+num[3];

    但是sum[3]不知道是由num[1]+num[4]还是num[2]+num[3],这就需要枚举一下了。然后算出num[1],num[2],num[3]的值。

    并从sum中剔除他们,这是最小的一个一定是num[1]+num[4],再把num[4]+num[2-(4-1)]的和剔除,这时最小的一定是num[1]+num[5]……

    以此类推就可以了……

    链接:http://acm.hdu.edu.cn/showproblem.php?pid=1270

    #include<iostream>
    #include<stdio.h>
    #include<algorithm>
    #include<iomanip>
    #include<cmath>
    #include<string>
    using namespace std;
    int
    num[105],sum[5100],mark[5100];
    int
    main()
    {

        int
    n,i,j,m,c,k;
        while
    (cin>>n&&n)
        {

            m=(n-1)*n/2;
            for
    (i=1;i<=m;i++)
                cin>>sum[i];
            sort(sum+1,sum+m+1);
            for
    (i=3;i<=m;i++)
            {

                num[2]=(sum[1]-sum[2]+sum[i])/2;
                num[1]=sum[1]-num[2];
                num[3]=sum[2]-num[1];
                if
    (num[2]+num[3]!=sum[i]) continue;
                memset(mark,0,sizeof(mark));
                mark[i]=1;k=3;
                bool
    flag=1;
                for
    (j=4;j<=n&&flag;j++)
                {

                    while
    (mark[k]==1) k++;
                    num[j]=sum[k]-num[1];
                    mark[k]=1;
                    for
    (int l=2;l<j&&flag;l++)
                    {

                        flag=0;
                        for
    (int x=k+1;x<=m;x++)
                        {

                            if
    (mark[x]==0&&num[j]+num[l]==sum[x])
                            {

                                mark[x]=1;
                                flag=1;
                                break
    ;
                            }
                        }
                    }
                }

                if
    (flag) break;
            }

            for
    (i=1;i<n;i++)
                cout<<num[i]<<' ';
            cout<<num[n]<<endl;       
        }

        return
    0;
    }

  • 相关阅读:
    Angular的执行顺序
    小程序地理位置授权,以及无法打开授权弹框的解决办法
    当需要对一个集合遍历删除元素的时候,都应该倒着删
    .net core部署在CentOS上时关于使用GDI报错的问题
    FactoryMethod(工厂方法模式)
    SimpleFactory(简单工厂模式)
    .net core3.1中swagger的使用
    使用HtmlAgilityPack开发爬虫筛选HTML时,关于xpath的坑
    在centos7.x环境中SQL Server附加数据库
    centos7.x中安装SQL Server
  • 原文地址:https://www.cnblogs.com/xin-hua/p/3193989.html
Copyright © 2011-2022 走看看