问题标题: 酷町堂:谁能讲讲1548的思路,谢谢了

0
0
已解决
赵航宇
赵航宇
资深守护
资深守护

1548   游戏之金币增长

题目描述 Description

小王是一个竞技游戏爱好者,在这一年中进行了N盘游戏,每盘游戏中获得的金币数是不同的,现在他想统计在这么多盘游戏中有多少次两盘游戏金币的差值等于C。例如进行5盘游戏,要求算有多少次两盘游戏差值等于20的情况(10 30 50 24 32),答案是2.

输入描述 Input Description

第一行包括2个非负整数N和C,中间用空格隔开。

第二行有N个整数,中间用空格隔开,作为要求处理的那串数。

输出描述 Output Description

输出一行,表示该串数中包含的所有满足A-B=C的数对的个数。

样例输入 Sample Input

 

4 1
1 1 2 3

样例输出 Sample Output

 

3

数据范围及提示 Data Size & Hint

对于73%的数据,N <= 2000;

对于100%的数据,N <= 200000。


0
已采纳
丁海洋
丁海洋
中级守护
中级守护

额,这道题,我虽然没写(同时也谢谢你让我可以刷一道题),但是思路还是有的,你学过power这道题么?这道类似,但不完全一样,一个是加,一个是减,power里面的加 为了避免两种情况,第一种是避免1+2=3,而2+1同样等于3(如果没避免的话就产生了两个胖子,这就多余了一个),第二种是避免3+2=5,而1+4同样等于5,所以b【tmp】一定要在最后等于0,tmp也要<=1000看他有没有越界。而这道题减肯定是要定义tmp=a【i】-a【j】的,当然还要考虑a[j]-a[i],然后tmp必须>=0,因为c是非负整数。

然后我就要去试验了,毕竟实验出真知,代码去编译,调试,尝试才是他的乐趣

祝你ac比我早

0
李致远
李致远
高级光能
高级光能

用一个循环,判断是否越界,如果a[i]+c大于等于MAX,则再判断这个数出现过没有,出现了就累加
 

我要回答