zoukankan      html  css  js  c++  java
  • 福建工程学院16级第一周寒假作业E题----第七集,奇思妙想

                             第七集,奇思妙想

                                                                                                    TimeLimit:2000MS  MemoryLimit:128MB
                                                                                                          64-bit integer IO format:%I64d
    Problem Description

    在经过一个比赛的小插曲后,小A不仅得到主办方的赏识后,还捞到了一大笔钱。有了足够的钱后,他继续出发前往那个聚会城市。由于小A和小C每天都需要赶路,他们需要多买一些舒适的袜子。在离开这个城市前,他先逛了一家袜子批发商店,该商店将不同数量的袜子放入一个个盒子中,且将盒子排成一排,小A看到这样的情景,顿时好奇(程序员的本能):

    若把这些箱子围成一个圈,并且拿走一段连续的箱子,且箱子中的袜子的总数量正好等于小A要买的袜子的数量M,有多少种拿法?(假设有N个盒子,盒子编号1-N)

    同在小A和小C买完了袜子之后,继续朝着聚会城市出发…

    Input

    有多组测试案例,

    每组测试案例,第一行输入一个正整数N,M(1<=N<=10^6, 1<=M<=10^8),表示有N个箱子。

    第二行输入N个非负整数Ai(1<=Ai<=100)、分别表示连续箱子里面的袜子的数量、

    Output

    对于每组测试案例,输出有多少种方法、

    SampleInput
    2 1
    1 1
    3 2
    1 1 1
    3 3
    1 1 1
    1 1
    1
    1 2
    1
    SampleOutput
    2
    3
    1
    1
    0
    题目是思路:题目描述要连续的的一组箱子,那么可以想到用迟取法,也就是定义两个标记,head和end,一开始都指向第一个元素,如果两个标记间的元素之和少于M那么就在尾部加一个元素,如果多余的就在减去头部一个元素,如果等于就方法+1,由于本题将箱子围成一个圈,可以先初始化将所有元素放进同一个数组两遍
    for(i=0; i<n; i++)
    {
                scanf("%d",&a[i]);
               a[n+i]=a[i];
    }

    接下来放段核心代码

    搬砖啦
  • 相关阅读:
    DOS_Edit 常用快捷键
    学_汇编语言_王爽版 要点采集笔记(未完待续...)
    Linux常用命令
    Vi/Vim常用命令(附快捷切换方法)
    Java包机制package之间调用问题-cmd运行窗口编译运行
    Java中自定义注解类,并加以运用
    jquery让form表单异步提交
    当h5页面图片加载失败后,给定一个默认图
    MySQL中对字段内容为Null的处理
    springboot应用在tomcat中运行
  • 原文地址:https://www.cnblogs.com/xcantaloupe/p/6293584.html
Copyright © 2011-2022 走看看