Problem1270 小希的数表

小希的数表

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

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 1720    Accepted Submission(s): 548

Problem Description

Gardon昨天给小希布置了一道作业,即根据一张由不超过5000的N(3<=N<=100)个正整数组成的数表两两相加得到N*(N-1)/2个和,然后再将它们排序。例如,如果数表里含有四个数1,3,4,9,那么正确答案是4,5,7,10,12,13。小希做完作业以后出去玩了一阵,可是下午回家时发现原来的那张数表不见了,好在她做出的答案还在,你能帮助她根据她的答案计算出原来的数表么?

Input

包含多组数据,每组数据以一个N开头,接下来的一行有按照大小顺序排列的N*(N-1)/2个数,是小希完成的答案。文件最后以一个0结束。 
假设输入保证解的存在性和唯一性。

Output

对于每组数据,输出原来的数表。它们也应当是按照顺序排列的。

Sample Input

4
4 5 7 10 12 13
4
5 6 7 8 9 10
0

Sample Output

1 3 4 9
2 3 4 6

Author

Gardon

Source

HDU 2006-4 Programming Contest

Recommend

lxj   |   We have carefully selected several similar problems for you:  1272 1267 1280 1269 1273

原文地址:https://www.cnblogs.com/parzulpan/p/9984431.html

时间: 2024-10-08 12:54:35

Problem1270 小希的数表的相关文章

1036: 小希的数表

1036: 小希的数表 时间限制: 1 Sec  内存限制: 128 MB提交: 417  解决: 283[提交][状态][讨论版] 题目描述 Gardon 昨天给小希布置了一道作业,即根据一张由不超过 5000 的 N(3<=N<=100)个正整数组成的数表两两相加得到 N*(N-1)/2 个和,然后再将它们排序.例如,如果数表里含有四个数 1,3,4,9,那么正确答案是 4,5,7,10,12,13.小希做完作业以后出去玩了一阵,可是下午回家时发现原来的那张数表不见了,好在她做出的答案还在

HDU 1270 小希的数表 (暴力枚举+数学)

题意:... 析:我们可以知道,a1+a2=b1,那么我们可以枚举a1,那么a2就有了,并且a1+a3=b2,所以a3就有了,我们再从把里面的剩下的数两两相加,并从b数组中去掉, 那么剩下的最小的就是a4,然后依次可以求出a5,a6....由于a最大才是5000,并且保证有唯一解,那么找到一个就直接退出. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #incl

小希的数表2(用的for循环)

#include<iostream> 02.#include<algorithm> 03.using namespace std; 04. 05.bool cmp(int a,int b){ 06. return a>b; 07.} 08. 09.int p[9000010],n,k; 10.int a[3005]; 11. 12.int main(){ 13. while(cin>>n>>k){ 14. for( int i = 0 ; i <

小希的数表1

#include<stdio.h> #include<string.h> #include<algorithm> #define N 100010 using namespace std; int a[N]; int b[N]; int c[N]; int main() { int i,j,k,t; int n,m; while(scanf("%d",&n),n) { m=n*(n-1)/2; for(i=0;i<m;i++) scan

小希的数表题解

代码: 1 #include<iostream> 2 #include<cstring> 3 #include<algorithm> 4 #define N 5005 5 using namespace std; 6 7 int a[N*(N-1)/2]; 8 int b[N*(N-1)/2]; 9 //int c[N*(N-1)/2]; 10 //bool flag[N*(N-1)/2]; 11 int x[N+5]; 12 13 int Add(int i,int

单继承与多继承中的虚函数表和虚函数指针

首先,我们了解一下何为单继承,何为多继承?? 单继承:一个子类只有一个直接父类. 多继承:一个子类有两个或多个直接父类. 单继承中的虚函数表分析: 示例程序: #include <iostream> using namespace std; typedef void(*FUNC)(); class Base { public: virtual void func1() { cout << "Base::func1()" << endl; } virt

C++ 虚函数表解析

转自陈浩的博客 前言 C++中的虚函数的作用主要是实现了多态的机制.关于多态,简而言之就是用父类型的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数.这种技术可以让父类的指针有"多种形态",这是一种泛型技术.所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法.比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议. 关于虚函数的使用方法,我在这里不做过多的阐述.大家可以看看相关的C++的书籍.在这篇文章中,我只想从虚函数的实现

HDU--1272 小希的迷宫

上次Gardon的迷宫城堡小希玩了很久(见Problem B),现在她也想设计一个迷宫让Gardon来走.但是她设计迷宫的思路不一样,首先她认为所有的通道都应该是双向连通的,就是说如果有一个通道连通了房间A和B,那么既可以通过它从房间A走到房间B,也可以通过它从房间B走到房间A,为了提高难度,小希希望任意两个房间有且仅有一条路径可以相通(除非走了回头路).小希现在把她的设计图给你,让你帮忙判断她的设计图是否符合她的设计思路.比如下面的例子,前两个是符合条件的,但是最后一个却有两种方法从5到达8.

C++虚函数表剖析

关键词:虚函数.虚表,虚表指针,动态绑定,多态 一.概述 为了实现C++的多态,C++使用了一种动态绑定的技术. 这个技术的核心是虚函数表(下文简称虚表).本文介绍虚函数表是怎样实现动态绑定的. 二.类的虚表 每一个包括了虚函数的类都包括一个虚表. 我们知道,当一个类(A)继承还有一个类(B)时.类A会继承类B的函数的调用权.所以假设一个基类包括了虚函数,那么其继承类也可调用这些虚函数,换句话说,一个类继承了包括虚函数的基类.那么这个类也拥有自己的虚表. 我们来看下面的代码. 类A包括虚函数vf