用了三重循环 结果是30分 C语言 求助!

P2141 [NOIP2014 普及组] 珠心算测验

@[落昀c](/user/285160) 首先,你的分数和你的循环数量没半毛钱关系。 然后,你的猜想是对的。 最后,建议你开一个`vis`数组把已经算过的数标记下来
by yummy @ 2020-02-05 00:09:10


最后的最后,大半夜的别刷题了,赶紧睡
by yummy @ 2020-02-05 00:09:40


如果a[i]+a[j]的和重复的话,c++会多次增加,建议用数组标记和,然后和a[i]比较,相同就把数组置0,如if(b[a[i]]==1){ans++;b[a[i]]=0; } PS:或者把和存起来,再删除重复数,不过这样不如标记来的方便,2333
by UnderDogStar @ 2020-02-05 10:39:30


@[yummy](/user/101694) 谢谢 >_< 大半夜的还帮小白看题
by 落昀c @ 2020-02-05 14:52:53


@[初壹](/user/290570) 谢谢解答!!
by 落昀c @ 2020-02-05 14:53:47


@[初壹](/user/290570) 小萌新不懂,题目说集合中的数各不相同,a[i]+a[j]的和怎么会重复啊,可以举个例子吗
by 一只编猴 @ 2020-02-06 13:47:57


@[一只编猴](/user/311447) emmm,比如一开始给定的集合里面有1,2,3,4,这样你计算和的话会有两个5,如果不判重的话,这个5会被计数两次,所以要利用数组标记和或者删除重复数
by UnderDogStar @ 2020-02-06 20:07:25


@[初壹](/user/290570) 啊,明白了,原来是这样,谢谢哈
by 一只编猴 @ 2020-02-07 18:20:15


|