题解 | #万万没想到之抓捕孔连顺#

万万没想到之抓捕孔连顺

http://www.nowcoder.com/questionTerminal/c0803540c94848baac03096745b55b9b

import java.util.Scanner;


public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int buildnum=in.nextInt();
        int farmax=in.nextInt();
        int[] point=new int[buildnum];
        long cont=0;
        final int MOD = 99997867;
        for(int i=0;i<buildnum;i++)point[i]=in.nextInt();
        int b=2;
        for(int a=0;a<buildnum-2;a++){
            for(;b<buildnum-1&&point[b+1]-point[a]<=farmax;b++);
            if(b>a+1)
            cont=(cont+(long)(b-a)*(b-a-1)/2)%MOD;
        }
        System.out.print(cont);
    }
}

这题目有个坑,就是数字会大到int存不下会丢失,不用累加公式会超时,用了会丢失,所以要把累加公式的数值先转为long的形式 给的数组已经是按照顺序排好了,不用再冒泡排一遍了 那么假定第一个人从一开始,只要看最后一个人能跑最远的位置就行 然后中间有多少个建筑就有多少种可能,累加起来就好,1+2+3+4这样 比如第一个人在0,第三个最远跑到3,中间有12俩个,那就有0 1 2, 0 1 3, 0 2 3三个,就是1+2
全部评论

相关推荐

程序员花海:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
秋招吐槽大会
点赞 评论 收藏
分享
11-13 14:37
门头沟学院 Java
程序员牛肉:是的,我觉得你最先需要的是多接触计算机圈子。我感觉你这个写的太幼稚了,根本没换位思考面试官。 你对实习的描述还是我写了前后端,我写了Restful接口,我用了EChatrs。你这让面试官怎么问你?问你什么是前后端?问你什么是Restful?讲真的兄弟,你这个简历在面试官眼里就是啥也不懂的好学生。所以一定要尽快加入一个圈子跟大家多聊聊,看看正儿八经的简历是怎么写的。 可以看一下我首页的简历怎么写那篇文章来学一下,你这里面的坑点我那篇文章里面都有讲过。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务