• 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;
    }

  • 相关阅读:
    内存 : CL设置
    联通积分兑换的Q币怎么兑换到QQ上
    DB2数据库表追加字段
    显示菜单项与按钮项的关联关系
    如何将Windows8系统的磁盘格式(GPT格式)转换成Windows 7系统的磁盘格式(MBR格式)
    索尼(SONY) SVE1512S7C 把WIN8降成WIN7图文教程
    SqlServer之数据库三大范式
    Python并发编程-Redis
    Python并发编程-Memcached (分布式内存对象缓存系统)
    Python并发编程-RabbitMQ消息队列
  • 原文地址:https://www.cnblogs.com/xin-hua/p/3193989.html
Copyright © 2020-2023  润新知