tceic.com
学霸学习网 这下你爽了
广告
当前位置:首页 >> 学科竞赛 >>

两数之和解题报告


1、题目概括:假设有n(2<n<10)个数,给你n个数中每两个数的和(那么共有n(n-1)/2)个和,要你求n个非负整数。无解则输出Impossible。

2、题目分析:看这组数据
4(n)
500 210 100 120 400 300(n(n-1)/2)个和)
先把这n(n-1)/2数排序。100 120 210 300 400 500
其中最小的和就应该是最小和第二小两个数之和。(这里枚举找最小和第二小两个数) 假设找到了 5 95(5+95=100)
再向下找,第二小的和就应该是最小和第三小数之和。 然后就可以找出三个和了。 继续找 115 那么就求出了三个和 100 120 210
接着找,依次的和就应该是最小和第i小数之和。 ....
最后如果找到n个数并且所有的和都用完就可以输出了。 ....

3、程序实现:关键有两点:1、找最小和第二小两个数。
2、判断枚举到的是否走过。
对于1 我用了while来找
对于2 我用了一个b数组,来判断本个数走过的次数(c数组记录初始走过的次数)
核心代码:
while(ans[1]+1<a[1]/2+1)//ans记录找到的结果
{
int s=0;//判断是否找到了一个不符合条件的数
ans[1]++;//第一个数
ans[2]=a[1]-ans[1];//第二个数应该是最小的和-第一个数(这里n(n-1)/2个和是a,已排好序)
m=2;//找到的结果的个数
for(int i=1;i<=n*(n-1)/2;i++) b[a[i]]=c[a[i]];//初始化b数组
for(int i=2;i<=n*(n-1)/2;i++)
if(b[a[i]]!=c[a[i]])//如果第i小的和没被用过
{
b[a[i]]--;//第i小的和用过一次
ans[++m]=a[i]-ans[1];//找到新一个结果,计数器加1
for(int j=2;j<m;j++)//枚举以前找到的数和刚刚找到的数做和
{
if(b[ans[m]+ans[j]]>0) b[ans[m]+ans[j]]--;//如果这个数还可以用,就把次数--
else {s=1;break;}//如果这个数不能用了,就记录不能用了,跳出循环
}
if(s==1) break;
if(m==n) shuchu();//如果找到n个数,就判断然后进行输出
}
}
4、总结归类 联想:这道题的n非常小,因为给出的和都小于100001,所以找到的数最大就是49999,所以我认为搜索也可以做到。(搜索就是找每个数)
但如果n非常大,就只可以用这个方法了。

推荐相关:

数学和差倍问题练习题解

(1+2×2+2+2)=108÷9=12(件) 二、和倍差数学题解 1、有两个自然数相除,商是 17,余数是 13,已知被除数、除数、商与余数之和等于 2113,则被除数是...


QZZN论坛资料_数量关系题解分析+思路解题

QZZN论坛资料_数量关系题解分析+思路解题_公务员考试_资格考试/认证_教育专区。一...3 题解析:此题为前两个数之和减 1 等于第三个数,22+35-1=56,35+56-1...


数学二年级上册知识要点及易错题解析

数学二年级上册知识要点及易错题解析长度单位 1、统一长度单位的必要性和长度单位...间隔数×两棵树之间的距离=第一棵 到最后一棵树的距离】 2、 将 8 盆花...


2004年数二试题解析

​研​究​生​入​学​统​一​考​试​数​学​(​...【分析 分析】求分段函数的极值点与拐点, 按要求只需讨论 x = 0 两方 f ...


概率论与数理统计题解

这两个数中的每一个都不超过 1,试求 x 与 y 之和不超过 1,积不小于 0...注意:从上面的解题过程看,计算相当麻烦,下面给出一种简单的计算方法: 解 2 ...


算法设计与分析课后习题解答

算法设计分析课后习题解答_理学_高等教育_教育专区。算法设计分析基础课后练习...[i]*power return p 算法效率分析: 基本操作:两个数相乘,且 M(n)仅依赖于...


第1章作业题解

之和为 3 的概率为 1 。 18 1 1 , 。 12 9 同理可以求得前后两次出现...解:用 Ai (i ? 0,1,2) 表示事件“在第一箱中取出两件产品的次品数 i ...


概率论与数理统计习题解答

袋中有 9 张纸牌,其中两张“2” ,三张“3” ,四张“4” ,任取一张,不放回,再任取 一张,前后所取纸牌上的数分别为 X 和 Y,求二维随机变量(X, Y)...


NOIP解题报告

NOIP2005 信息学奥林匹克分区联赛 解题报告 OIBH.KuYe...这样中间一定会有很多“空长条” (两个石子中的...如果栈内大,则取栈顶元素数栈最顶 2 元素运 ...


solution day2题解

为根的子树中 i 距离为 j 的结点的个数,可以...因为每行每列仅有两个点有棋子,就是说 各种摆法...NOIP2011 提高组 解题报... 4页 1下载券©...

网站首页 | 网站地图
All rights reserved Powered by 学霸学习网 www.tceic.com
copyright ©right 2010-2021。
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@126.com