zoukankan      html  css  js  c++  java
  • 阅读训练

    题目描述
    一天晨晨在做阅读训练。她拿了一本包括n篇文章的小说集,第i篇文章包括bi (1≤bi≤100)页,已知晨晨每读一页都要花一分钟。假设晨晨开始阅读小说第一页的时间起点为0,她读第一篇文章从时间点0到时间点b1-1,第二篇文章从时间点b1到时间点b1+b2-1,依此类推…,阅读第n篇文章的时间点b1+b2+…+bn-1到时间点b1+b2+…+bn-1+bn-1。那么,当在时间点t时(0≤t<阅读总时间),你知道晨晨在阅读第几篇文章吗?
    其实晨晨的好奇心比你还强,虽然阅读还未正式开始,但她很想知道在未来Q个时间点时,自己分别会在阅读哪一篇文章?
    严重偏文科的晨晨,感觉这个问题很棘手,就想请你这个电脑高手帮忙。
    例如:如果一本书包括三篇文章:第一篇文章2页,第二篇文章1页,第三篇文章3页,那么时间点与所读文章(序号)的关系如下图所示:

    输入
    第一行:包括空格分开的两个整数N和Q (其中1≤n≤100,1≤Q≤1000) 。
    接下来的N行,每行一个整数代表每篇文章的页数。
    再接下来是Q行,每行一个整数代表一个时间点。

    输出
    总共Q行,每行一个数,代表按输入顺序的每个时间点正在阅读的文章序号。

    样例输入
    复制样例数据
    3 5
    2
    1
    3
    2
    3
    4
    0
    1
    样例输出
    2
    3
    3
    1
    1

    #include <iostream>
    #include <bits/stdc++.h>
    using namespace std;
    
    int main()
    {
        int n,q,i,j,t=1,x,y;
        scanf("%d %d",&n,&q);
        int a[n],b[5000];
        b[0]=1;
        for(i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
            y=t-1;
            t=t+a[i];
            t=t-1;
            for(j=y;j<t;j++)
            {
               b[j]=i+1;
            }
            t=t+1;
        }
        for(j=0;j<q;j++)
        {
            scanf("%d",&x);
            for(i=0;i<t;i++)
            {
                if(x==i)
                {
                    printf("%d
    ",b[i]);
                    break;
                }
            }
        }
        return 0;
    }
    
    

    应该是复杂了点。。。。。

  • 相关阅读:
    log4net编译后命名空间找不到的问题
    网络流建模汇总
    零散知识点收集
    CentOS7中“ONBOOT”已设置为“yes”但开机后ens33不会自启动解决方案
    Hanoi塔问题
    Mosquitto用户名密码配置
    Activiti5 数据库表结构
    皮尔森相关系数(Pearson correlation coefficient)
    如何用研发流程搞垮一个团队?
    Java 编程规范
  • 原文地址:https://www.cnblogs.com/skyleafcoder/p/12319580.html
Copyright © 2011-2022 走看看